最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

今天我們主要來模仿一下美團中加載數(shù)據(jù)時小人奔跑動畫的對話框效果,取個有趣的名字就是Running Man,奔跑吧,兄弟!話不多少,先上效果圖,讓各位大俠看看是不是你想要實現(xiàn)的效果,然后再決定是否往下閱讀,因為做為程序員我們的時間都很寶貴,畢竟還沒有女朋友呢?

(ps:因為技術(shù)原因,提供的動態(tài)圖效果不是很明顯,但在手機上運行是非常好的,有興趣的朋友可以下載源碼看看。)

下面講講實現(xiàn)的原理,首先我們在項目的res目錄下新建一下anim文件夾,然后新建一個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 是動畫列表,中間放很多的item 也就是組成幀動畫的圖片,

android:drawable[drawable]//加載Drawable對象

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

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

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

/** 
 * @Description:自定義對話框 
 * @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對象拿到背景顯示的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); 
 } 
} 

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

當(dāng)然還有另外一個方法也能實現(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();

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

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

相關(guān)文章

  • Android 防止過快(多次)點擊的實現(xiàn)方法

    Android 防止過快(多次)點擊的實現(xiàn)方法

    很多用戶經(jīng)常會出現(xiàn)過快且多次點擊同一按鈕的情況,本篇文章主要介紹了Android 防止過快點擊的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android四種方式刷新View的操作方法

    Android四種方式刷新View的操作方法

    本文介紹了Android中四種方式刷新View的方法,并討論了使用GONE狀態(tài)時可能遇到的問題,如布局性能下降、UI體驗不佳、數(shù)據(jù)綁定和事件監(jiān)聽問題,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果

    Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果

    這篇文章主要介紹了Android如何使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果,幫助大家更好的利用Android進行開發(fā),感興趣的朋友可以了解下
    2021-01-01
  • Android Studio使用小技巧:提取方法代碼片段

    Android Studio使用小技巧:提取方法代碼片段

    這篇文章主要介紹了Android Studio使用小技巧:提取方法代碼片段,本文分享了一個快速復(fù)制粘貼方法代碼片段的小技巧,并用GIF圖演示,需要的朋友可以參考下
    2015-05-05
  • flutter消息推送客戶端集成方案詳解

    flutter消息推送客戶端集成方案詳解

    這篇文章主要為大家介紹了flutter消息推送客戶端集成方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android實現(xiàn)手機震動效果

    Android實現(xiàn)手機震動效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)手機震動效果的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android實現(xiàn)ViewPager無限循環(huán)效果(一)

    Android實現(xiàn)ViewPager無限循環(huán)效果(一)

    這篇文章主要為大家詳細介紹了Android實現(xiàn)ViewPager無限循環(huán)效果的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • android開發(fā)教程之switch控件使用示例

    android開發(fā)教程之switch控件使用示例

    這篇文章主要介紹了android開的switch控件使用示例,需要的朋友可以參考下
    2014-04-04
  • Android實現(xiàn)圖片加載進度提示

    Android實現(xiàn)圖片加載進度提示

    這篇文章主要為大家詳細介紹了Android實現(xiàn)圖片加載進度提示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android實現(xiàn)可復(fù)用的選擇頁面

    Android實現(xiàn)可復(fù)用的選擇頁面

    這篇文章主要為大家詳細介紹了Android實現(xiàn)可復(fù)用的選擇頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評論

宁陕县| 泌阳县| 德清县| 左云县| 义乌市| 广丰县| 腾冲县| 柏乡县| 井陉县| 永寿县| 巩留县| 烟台市| 绿春县| 九龙城区| 邢台市| 磐石市| 时尚| 贵港市| 沂南县| 阳曲县| 天全县| 康平县| 竹北市| 洪泽县| 吉木乃县| 长泰县| 三河市| 于田县| 双辽市| 松潘县| 房产| 虞城县| 阜新市| 临清市| 凭祥市| 城市| 建平县| 东台市| 百色市| 神农架林区| 锦屏县|