Android基礎知識之frame動畫效果_Android

來源:互聯網
上載者:User

上一篇我們說了Android中的tween動畫,這一篇我們說說frame動畫,frame動畫主要是實現了一種類似於gif動畫的效果,就是多張圖按預先設定好的時間依次連續顯示。
建立一個android項目,名字叫做frameTest,在res檔案夾下建立一個檔案夾叫做anim,我們的frame動畫的xml檔案就放在這裡。
在anim中建立一個frame.xml檔案,內容如下:

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"><!-- true表示只播放一次,false表示無限迴圈播放 --> <item android:drawable="@drawable/girl_1" android:duration="100" /> <item android:drawable="@drawable/girl_2" android:duration="100" /> <item android:drawable="@drawable/girl_3" android:duration="100" /> <item android:drawable="@drawable/girl_4" android:duration="100" /> <item android:drawable="@drawable/girl_5" android:duration="100" /> <item android:drawable="@drawable/girl_6" android:duration="300" /> <item android:drawable="@drawable/girl_7" android:duration="400" /> <item android:drawable="@drawable/girl_8" android:duration="300" /> <item android:drawable="@drawable/girl_9" android:duration="100" /> <item android:drawable="@drawable/girl_10" android:duration="100" /> <item android:drawable="@drawable/girl_11" android:duration="100" /></animation-list>

這裡是11圖片,前面的android:oneshot屬性工作表示該動畫執行的次數,false表示該動畫反覆迴圈播放,true則表示該動畫值播放一次,duration表示每張圖片顯示的時間,以毫秒計。

然後看看MainActivity中的代碼:

public class MainActivity extends Activity { private ImageView iv; private AnimationDrawable ad; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  iv = (ImageView) this.findViewById(R.id.iv);//  iv.setBackgroundResource(R.anim.frame);//  ad = (AnimationDrawable) iv.getBackground();  //上面兩句,可以用下面兩句代替,效果是一樣的  iv.setImageResource(R.anim.frame);  ad = (AnimationDrawable) iv.getDrawable(); } public void start(View v){  //如果ad正在運行,就先讓它停止下來  if(ad.isRunning())   ad.stop();  ad.start(); }}

先拿到一個ImageView,然後把frame動畫設定為它的背景,最後拿到這個圖片的背景並強轉為AnimationDrawable,當點擊該圖片時,如果動畫已經在運行,就讓它先停止,再重新運行,否則直接運行即可。

原文連結:http://blog.csdn.net/u012702547/article/details/45716757

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.