android – 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();
        }
});

解决方法

所以Animation.addFrame(Drawable frame,int duration)需要一个可以从Bitmap创建的drawable.

如果您的图像列表是动态加载的:

List<Bitmap> images;
int duration = 200;    

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

试试这个,一定要工作.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...