Вопрос по android-animation, android – AnimationDrawable программно без анимации-список XML

13

Я нахожусь в ситуации, когда я хочу отображать анимацию из динамического списка изображений. Я хочу использовать AnimationDrawable для этой цели, но, к сожалению, я застрял ... :( мой код как

<code>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();
        }
});
</code>

Ваш Ответ

2   ответа
5

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);
}

Попробуйте это, должно определенно работать.

Error: User Rate Limit Exceededandroidforums.com/application-development/…
Error: User Rate Limit Exceeded makki
5

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()

Похожие вопросы