android 逐幀動畫的播放與播放結束操作對象


逐幀動畫的xml代碼:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:oneshot="true" >
 4 
 5     <item
 6         android:drawable="@drawable/img10"
 7         android:duration="1000">
 8     </item>
 9     <item
10         android:drawable="@drawable/img9"
11         android:duration="1000">
12     </item>
13     <item
14         android:drawable="@drawable/img8"
15         android:duration="1000">
16     </item>
17     <item
18         android:drawable="@drawable/img7"
19         android:duration="1000">
20     </item>
21     <item
22         android:drawable="@drawable/img6"
23         android:duration="1000">
24     </item>
25     <item
26         android:drawable="@drawable/img5"
27         android:duration="1000">
28     </item>
29     <item
30         android:drawable="@drawable/img4"
31         android:duration="1000">
32     </item>
33     <item
34         android:drawable="@drawable/img3"
35         android:duration="1000">
36     </item>
37     <item
38         android:drawable="@drawable/img2"
39         android:duration="1000">
40     </item>
41     <item
42         android:drawable="@drawable/img1"
43         android:duration="1000">
44     </item>
45  <item
46         android:drawable="@drawable/img0"
47         android:duration="1000">
48     </item>
49     
50 </animation-list>
View Code

 

對應的android代碼:

說明:
  • android:oneshot:幀動畫運行的次數,true表示運行一次,false表示循環播放;
  • item:定義每幀的屬性;
  • android:drawable:指定該幀對應的圖像資源;
  • android:duration:該幀圖像停留的時間。
 1 public class MainActivity extends Activity {
 2 
 3     private ImageView img;
 4     private Button button;
 5     private AnimationDrawable animationDrawable;
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_main);
10         int duration=0;  // duration是記錄第一個動畫播放的總時間
11         img=(ImageView) findViewById(R.id.imageView);
12                 img.setImageResource(R.drawable.item_anim);
13                 animationDrawable=(AnimationDrawable) img.getDrawable();
14                 img.post(new Runnable() {    //在異步線程中執行啟動的方法
15                     
16                     @Override
17                     public void run() {
18                         // TODO Auto-generated method stub
19                         animationDrawable.start();   //啟動動畫
20                     }
21                 });
22                 for(int i=0;i<animationDrawable.getNumberOfFrames();i++){
23                     duration+=animationDrawable.getDuration(i);     //計算動畫播放的時間
24                     
25                 }
26         Handler handler=new Handler();
27         handler.postDelayed(new Runnable() {
28             public void run() {
29                 Intent intent=new Intent(MainActivity.this,TestActivity.class);  //Intent 意圖 在執行完動畫的時候 跳轉至另一個頁面
30                 startActivity(intent);
31                 
32             }
33         }, duration);
34         
35     }
36 
37 
38 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM