我可以在动画序列中使用多少个PNG图像?

时间:2012-01-09 03:34:28

标签: android animation png

我想要使用XML动画文件在动画序列中使用45个PNG文件。我注意到我无法为过去的10个PNG文件设置动画,然后我就会遇到动画在第10张图像上播放的问题,或者它会崩溃。

有没有办法克服这个限制?

1 个答案:

答案 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);
}