我已经制作了一组3个图像,代表动物的移动。每个图像代表一个帧,只包含在背景透明的动物中。
我用代码绘制了一个动画并创建了动画:
animationDrawable staticAnimation=新建animationDrawable();
staticanimation.addFrame(ctx.getResources().getDrawable(“frame1”),150);
staticanimation.addFrame(ctx.getResources().getDrawable(“frame2”),150);
staticanimation.addFrame(ctx.getResources().getDrawable(“frame3”),150);
我将动画设置为imageview的背景并启动它
可缩回制图(静态动画);
静态动画.start()
由于帧的宽度不同(图形需要重新创建步骤移动),因此ImageView看起来会调整动画中的图像大小。更好的说法是,如果frame1比frame2大,那么frame1显示正常,但是frame2被拉伸到与frame1一样大。看起来很糟糕。
对如何制止这种行为有什么建议吗?谢谢您。

最佳答案

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

10-05 18:37