- 我制作了一组由3张图片组成的动物移动图示。每张图片代表一个帧,仅包含具有透明背景的动物。
- 我在代码中创建了一个AnimationDrawable,并创建了动画:
- 我将动画设置为ImageView的背景,并启动它:
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);
imgAnimal.setBackgroundDrawable(staticAnimation); staticAnimation.start();
因为帧的宽度不同(绘图需要重新创建移动步骤),看起来像是ImageView重新调整了动画中的图像。更准确地说,如果frame1比frame2大,则frame1会正常显示,但是frame2会被拉伸以与frame1相同的大小。看起来非常糟糕。
您有任何关于如何停止这种行为的建议吗?谢谢。