我想要使用XML动画文件在动画序列中使用45个PNG文件。我注意到我无法为过去的10个PNG文件设置动画,然后我就会遇到动画在第10张图像上播放的问题,或者它会崩溃。
有没有办法克服这个限制?
答案 0 :(得分:2)
你需要检查崩溃的原因,如果是内存不足错误,你可以尝试让png图片像素更小。
如果它是系统动画大小限制,你可以尝试另一种方法,你可以创建你的视图并在你的视图中创建一个Handler
和每次处理程序发送消息(每个持续时间的动画),当收到消息时,改变png。
添加:
static final int MSG_ANIMATION = 1, MSG_CANCEL = 2;
static final int ANIMATION_DURATION = 500;
public Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
final int what = msg.what;
if (what == MSG_ANIMATION) {
// here change the animation png
setImageResource(..);
mHandler.sendEmptyMessageDelayed(MSG_ANIMATION, ANIMATION_DURATION);
} else if (what == MSG_CANCEL) {
removeMessages(MSG_ANIMATION);
}
};
};
public void startAnimation() {
// set first animation png
setImageResource(..);
mHandler.sendEmptyMessageDelayed(MSG_ANIMATION, ANIMATION_DURATION);
}
public void stopAnimation() {
mHandler.sendEmptyMessage(MSG_CANCEL);
}