0

我有一个动画列表,其中包含(略微)不同大小的图像。我有一个ImageViewwithlayout_widthlayout_heightset as 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,或者甚至是一个变通方法?..

4

2 回答 2

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

...但是,我现在做的是手动将动画列表中的帧分配给 my ,而不是将其分配AnimationDrawable给 myImageView然后启动它ImageView,如下所示...

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

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

my_animation_list.getDuration(myCurrentFrameIndex);
于 2012-10-30T13:58:12.223 回答
0

这样做不是最有趣的,但您可以将位图包装在InsetDrawables中以使它们具有相同的大小。自己修复位图可能更容易。我没有看过AnimationDrawable的代码,所以可能有更好的方法......

于 2012-10-10T20:44:12.977 回答