17

画像の動的リストからアニメーションを表示したい状況にあります。この目的でAnimationDrawableを使用したいのですが、残念ながら行き詰まっています...:(私のコードは

ImageView globe = (ImageView) findViewById(R.id.globe);

AnimationDrawable animation = new AnimationDrawable();
animation.setOneShot(true);

Resources res = this.getResources();

while (from <= to) {
    String name = "globe_" + String.format("%03d", from);
    int globeId = res.getIdentifier(name, "drawable",
            this.getPackageName());
    animation.addFrame(res.getDrawable(globeId), 200);
    from++;
}

globe.setBackgroundDrawable(animation);
globe.post(new Runnable(){
        @Override
        public void run() {
            animation.start();
        }
});
4

2 に答える 2

8

animation.start()ループの後で実行し、ランナブルから関数を呼び出したところ、機能しました

while (from <= to) {
    String name = "globe_" + String.format("%03d", from);
    int globeId = res.getIdentifier(name, "drawable",
            this.getPackageName());

    animation.addFrame(res.getDrawable(globeId), 200);
    from++;
}

globe.setBackgroundDrawable(animation);

animation.start()
于 2012-09-20T10:38:48.103 に答える
7

したがって、Animation.addFrame(Drawable frame、int duration)は、ビットマップから作成できるドローアブルを取ります。

画像のリストが動的に読み込まれる場合:

List<Bitmap> images;
int duration = 200;    

for(Bitmap image: images){
    BitmapDrawable frame = new BitmapDrawable(image);
    animation.addFrame(frame, duration);
}

これを試してみてください、間違いなく動作するはずです。

于 2012-04-14T06:16:21.947 に答える