AnimationDrawable программно без анимационного списка xml
Я в ситуации, когда хочу отображать анимацию из динамического списка изображений. Я хочу использовать 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();
}
});
Ответы
Ответ 1
Я только что сделал animation.start()
после цикла и вызвал функцию из runnable и работал
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()
Ответ 2
Итак, Animation.addFrame(Drawable frame, int duration) принимает drawable, который вы можете создать из Bitmap.
Если ваш список изображений динамически загружен:
List<Bitmap> images;
int duration = 200;
for(Bitmap image: images){
BitmapDrawable frame = new BitmapDrawable(image);
animation.addFrame(frame, duration);
}
Попробуйте это, определенно должно работать.