2011-12-13 75 views

回答

1

我還是堅持認爲你應該嘗試使用AnimationDrawable。將所有圖像保存在可繪製文件夾中,並且可以在特定持續時間後逐一對其進行動畫處理。

說你有像abc1,abc2,abc3,......這樣的可繪製文件夾中的圖像然後只需要一個ImageView並使用動畫迭代該ImageView中的所有圖像。

所以試試吧,這裏我只考慮5張圖片,所以如果你有125張,那麼循環應該移動125次。

我的XML - main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal" 
    > 
<ImageView android:id="@+id/imgView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
</LinearLayout> 

我的Java類 - mainAct.java

public class mainAct extends Activity { 

    AnimationDrawable anim = new AnimationDrawable(); 
    Handler handler = new Handler(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ImageView imageView = (ImageView) findViewById(R.id.imgView); 

     for (int i = 1; i <= 5; i++) { 
      anim.addFrame(getResources().getDrawable(getResources().getIdentifier("abc"+i, "drawable", getPackageName())), 1000); 
     } 

     imageView.setBackgroundDrawable(anim); 
     imageView.post(new Runnable() { 
      @Override 
      public void run() { 
       anim.start(); 
       handler.postDelayed(new Runnable() { 

        @Override 
        public void run() { 
         mainAct.this.finish(); 
        } 
       },getTotalAnimationDuration()); 
      } 
     }); 
    } 

    private int getTotalAnimationDuration() { 
     int mDuration = 0; 
     for (int i = 0; i < anim.getNumberOfFrames(); i++) { 
      mDuration = mDuration + anim.getDuration(i); 
     } 
     return mDuration; 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     anim.stop(); 
    } 
} 
+1

這是一個很好的解決方案,但我想它和應用程序崩潰約太多的空間已經alloced: 12-14 11:19:15.762:E/AndroidRuntime(14259):java.lang.OutOfMemoryError:位圖大小超過虛擬機預算 – max246 2011-12-14 11:20:49