亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android實(shí)現(xiàn)仿美團(tuán)、順豐快遞數(shù)據(jù)加載效果

 更新時(shí)間:2017年12月24日 14:02:00   作者:一葉飄舟  
本片文章教給大家用Android實(shí)現(xiàn)美團(tuán)和順豐快遞APP的數(shù)據(jù)加載的動(dòng)畫效果,有興趣的朋友跟著學(xué)習(xí)嘗試下吧。

我們都知道在Android中,常見的動(dòng)畫模式有兩種:一種是幀動(dòng)畫(Frame Animation),一種是補(bǔ)間動(dòng)畫(Tween Animation)。幀動(dòng)畫是提供了一種逐幀播放圖片的動(dòng)畫方式,播放事先做好的圖像,與gif圖片原理類似,就像是在放電影一樣。補(bǔ)間動(dòng)畫可以實(shí)現(xiàn)View組件的移動(dòng)、放大、縮小以及漸變等效果。

今天我們主要來模仿一下美團(tuán)中加載數(shù)據(jù)時(shí)小人奔跑動(dòng)畫的對(duì)話框效果,取個(gè)有趣的名字就是Running Man,奔跑吧,兄弟!話不多少,先上效果圖,讓各位大俠看看是不是你想要實(shí)現(xiàn)的效果,然后再?zèng)Q定是否往下閱讀,因?yàn)樽鰹槌绦騿T我們的時(shí)間都很寶貴,畢竟還沒有女朋友呢?

(ps:因?yàn)榧夹g(shù)原因,提供的動(dòng)態(tài)圖效果不是很明顯,但在手機(jī)上運(yùn)行是非常好的,有興趣的朋友可以下載源碼看看。)

下面講講實(shí)現(xiàn)的原理,首先我們?cè)陧?xiàng)目的res目錄下新建一下anim文件夾,然后新建一個(gè)xml文件,添加如下代碼:

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
 android:oneshot="false" > 
 <item 
  android:drawable="@drawable/app_loading0" 
  android:duration="150"/> 
 <item 
  android:drawable="@drawable/app_loading1" 
  android:duration="150"/> 
</animation-list> 

animation-list 是動(dòng)畫列表,中間放很多的item 也就是組成幀動(dòng)畫的圖片,

android:drawable[drawable]//加載Drawable對(duì)象

android:duration[long]//每一幀動(dòng)畫的持續(xù)時(shí)間(單位ms)

android:oneshot[boolean]//動(dòng)畫是否只運(yùn)行一次,true運(yùn)行一次,false重復(fù)運(yùn)行

寫好之后我們來看自定義一個(gè)對(duì)話框,來實(shí)現(xiàn)打開對(duì)話框時(shí),自動(dòng)加載奔跑的動(dòng)畫。見代碼:

/** 
 * @Description:自定義對(duì)話框 
 * @author http://blog.csdn.net/finddreams 
 */ 
public class CustomProgressDialog extends ProgressDialog { 
 private AnimationDrawable mAnimation; 
 private Context mContext; 
 private ImageView mImageView; 
 private String mLoadingTip; 
 private TextView mLoadingTv; 
 private int count = 0; 
 private String oldLoadingTip; 
 private int mResid; 
 public CustomProgressDialog(Context context, String content, int id) { 
  super(context); 
  this.mContext = context; 
  this.mLoadingTip = content; 
  this.mResid = id; 
  setCanceledOnTouchOutside(true); 
 } 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  initView(); 
  initData(); 
 } 
 private void initData() { 
  mImageView.setBackgroundResource(mResid); 
  // 通過ImageView對(duì)象拿到背景顯示的AnimationDrawable 
  mAnimation = (AnimationDrawable) mImageView.getBackground(); 
  // 為了防止在onCreate方法中只顯示第一幀的解決方案之一 
  mImageView.post(new Runnable() { 
   @Override 
   public void run() { 
    mAnimation.start(); 
   } 
  }); 
  mLoadingTv.setText(mLoadingTip); 
 } 
 public void setContent(String str) { 
  mLoadingTv.setText(str); 
 } 
 private void initView() { 
  setContentView(R.layout.progress_dialog); 
  mLoadingTv = (TextView) findViewById(R.id.loadingTv); 
  mImageView = (ImageView) findViewById(R.id.loadingIv); 
 } 
} 

可以看到在代碼中,我們使用到一個(gè)imageview.post(Runnable r)方法,因?yàn)閹瑒?dòng)畫需要不斷的重畫,所以必須在線程中運(yùn)行,否則只能看到第一幀的效果,這和我們做游戲的原理是一樣的,一個(gè)人物的走動(dòng),是有線程在控制圖片的不斷重畫。

當(dāng)然還有另外一個(gè)方法也能實(shí)現(xiàn):

@Override 
 public void onWindowFocusChanged(boolean hasFocus) { 
  // TODO Auto-generated method stub 
  mAnimation.start(); 
  super.onWindowFocusChanged(hasFocus); 
 } 

最后就是在Activity中調(diào)用了,詳情:

CustomProgressDialog dialog =new CustomProgressDialog(this, "正在加載中",R.anim.frame); 
  dialog.show();

對(duì)于CustomProgressDialog這個(gè)自定義對(duì)話框類是封裝的比較好的,調(diào)用起來十分方便,你可以快速的替換成你想要的效果,只需更改圖片就可以了。

以上就是本篇文章的全部?jī)?nèi)容,大家在測(cè)試后如果還有任何不明白的地方可以在下方的留言區(qū)域?qū)д摚兄x你對(duì)腳本之家的支持。

相關(guān)文章

  • Android實(shí)現(xiàn)伴奏錄音合成MP3

    Android實(shí)現(xiàn)伴奏錄音合成MP3

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)伴奏錄音合成MP3,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android中drawable使用Shape資源

    Android中drawable使用Shape資源

    這篇文章主要為大家詳細(xì)介紹了Android中drawable使用Shape資源的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 初步編寫IDEA\AndroidStudio翻譯插件的方法

    初步編寫IDEA\AndroidStudio翻譯插件的方法

    這篇文章主要介紹了初步編寫IDEA\AndroidStudio翻譯插件,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Android實(shí)現(xiàn)炫酷播放效果

    Android實(shí)現(xiàn)炫酷播放效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)炫酷播放效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android 仿京東側(cè)滑篩選實(shí)例代碼

    Android 仿京東側(cè)滑篩選實(shí)例代碼

    本篇文章主要介紹了Android 仿京東側(cè)滑篩選實(shí)例代碼,詳細(xì)的介紹了側(cè)滑篩選的代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-03-03
  • Android shape標(biāo)簽使用方法介紹

    Android shape標(biāo)簽使用方法介紹

    shape算是我們常用的一個(gè)標(biāo)簽,他可以生成線條,矩形, 圓形, 圓環(huán),像我們圓角的按鈕就可以通過shape來實(shí)現(xiàn),最終Android會(huì)把這個(gè)帶有shape標(biāo)簽的圖片解析成一個(gè)Drawable對(duì)象,這個(gè)Drawable對(duì)象本質(zhì)是GradientDrawable
    2022-09-09
  • Android Coil對(duì)比Glide深入分析探究

    Android Coil對(duì)比Glide深入分析探究

    這篇文章主要介紹了Android Coil對(duì)比Glide,Coil是Android上的一個(gè)全新的圖片加載框架,它的全名叫做coroutine image loader,即協(xié)程圖片加載庫
    2023-02-02
  • 使用UITextField限制輸入金額是正確小數(shù)

    使用UITextField限制輸入金額是正確小數(shù)

    通過我們使用正則表達(dá)式和textfield的方法判斷輸入金額是否為正確的金額,今天小編給大家使用UITextField限制輸入金額是正確小數(shù),有需要的朋友可以參考下
    2016-05-05
  • Android實(shí)現(xiàn)從相冊(cè)選擇照片功能

    Android實(shí)現(xiàn)從相冊(cè)選擇照片功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)從相冊(cè)選擇照片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android鍵盤輸入語言設(shè)置默認(rèn)打開myanmar緬甸語的步驟

    Android鍵盤輸入語言設(shè)置默認(rèn)打開myanmar緬甸語的步驟

    如何實(shí)現(xiàn)Android鍵盤輸入語言默認(rèn)打開為myanmar緬甸語,如果要設(shè)置某種語言在輸入法默認(rèn)打開可按一下步驟添加文件,我這里已經(jīng)驗(yàn)證時(shí)OK的
    2013-06-06

最新評(píng)論