Android中的ImageView使用AnimationDrawable时,源文件大小是否会改变?

3
  1. 我制作了一组由3张图片组成的动物移动图示。每张图片代表一个帧,仅包含具有透明背景的动物。
  2. 我在代码中创建了一个AnimationDrawable,并创建了动画:
  3. AnimationDrawable staticAnimation = new AnimationDrawable();
    staticAnimation.addFrame(ctx.getResources().getDrawable("frame1"),150);
    staticAnimation.addFrame(ctx.getResources().getDrawable("frame2"),150);
    staticAnimation.addFrame(ctx.getResources().getDrawable("frame3"),150);
  4. 我将动画设置为ImageView的背景,并启动它:
  5. imgAnimal.setBackgroundDrawable(staticAnimation);
    staticAnimation.start();

因为帧的宽度不同(绘图需要重新创建移动步骤),看起来像是ImageView重新调整了动画中的图像。更准确地说,如果frame1比frame2大,则frame1会正常显示,但是frame2会被拉伸以与frame1相同的大小。看起来非常糟糕。

您有任何关于如何停止这种行为的建议吗?谢谢。

1个回答

2

这个解决方案非常简单,因为帧中的图像高度相同但宽度不同,我只需制作一个透明边框矩形并将其放在每个帧上方。在这种情况下,每个帧将具有相同的宽度,并且动画将按预期运行。


按照你说的方式制作了,但仍然无法正常运行。请在你的回答中添加更多描述。 - Ivan Vovk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接