編輯:關於Android編程
上一篇我們說了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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
寫在前面:最近接到老大的一個需求,要求在手機端攔截微信的通知(Notification),從而獲得聯系人和內容。之後將聯系人和內容發送到我們的硬件產品上,展示出來之後,再
C++ LooperLooperLooper類[system/core/libutils/Looper.cpp]提供了pollOnce(),wake()函數來完成睡眠等待
現在,不少人都在手機搜狗輸入法,但是有些用戶反映,在手機上使用搜狗輸入法進行書寫時,因為鍵盤大小而有了一些困擾,這裡有一個方法可以調節鍵盤大小,方便您的書寫
Android Window、PhoneWindow、Activity學習心得第二彈Window 分析這裡先給出部分源碼 目錄(Android 4.4/framework