【发布时间】:2012-02-05 16:56:37
【问题描述】:
我有 45 个 PNG 文件,我想在使用 XML 动画文件的动画序列中使用它们。我注意到我无法为过去的 10 个 PNG 文件设置动画,而且我在动画播放到第 10 个图像之后遇到问题,否则它会崩溃。
有没有办法克服这个限制?
【问题讨论】:
我有 45 个 PNG 文件,我想在使用 XML 动画文件的动画序列中使用它们。我注意到我无法为过去的 10 个 PNG 文件设置动画,而且我在动画播放到第 10 个图像之后遇到问题,否则它会崩溃。
有没有办法克服这个限制?
【问题讨论】:
您需要检查崩溃原因,如果是内存不足错误,您可以尝试将 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);
}
【讨论】: