AnimationDrawable用于动画列表与各种大小的drawables?

时间:2012-10-09 13:37:07

标签: android android-animation

我有一个由(稍微)不同大小的图像组成的动画列表。我的ImageView layout_widthlayout_height设置为wrap_content。我将动画列表设置为ImageView的内容并按如下方式启动动画:

AnimationDrawable my_animation_list = (AnimationDrawable)getResources().getDrawable(
    R.drawable.my_animation_list);

myImageView.setImageDrawable(my_animation_list)
((AnimationDrawable)myImageView.getDrawable()).start();

我要求并期望ImageView使用动画列表中的每个帧/图像调整其高度和宽度。相反,看起来ImageView获取动画列表中第一帧的高度和宽度,然后缩放动画列表中的所有帧以适合此初始高度和宽度。任何人都知道如何获得一个AnimationDrawable(动画列表),其中包含各种大小的图像,以便与ImageView一起使用,或者甚至可以解决这个问题?...

1 个答案:

答案 0 :(得分:1)

我最后做的是像以前一样从AnimationDrawable创建我的animation-list,如下所示......

// declaration in activity
private AnimationDrawable my_animation_list;

// load animation list in onCreate() method of activity or elsewhere
my_animation_list = (AnimationDrawable)getResources().getDrawable(
    R.drawable.my_animation_list);

...但是,不是将此AnimationDrawable分配给我的ImageView然后启动它(如我的问题所示),我现在要做的是手动将动画列表中的帧分配给我的ImageView,如下......

myImageView.setImageDrawable(my_animation_list.getFrame(myCurrentFrameIndex));
myCurrentFrameIndex++;

...我使用Handler发送/接收/处理后续Message实例来更新显示的帧,确定每帧的持续时间如下:

my_animation_list.getDuration(myCurrentFrameIndex);