【问题标题】:How many PNG images can I use in an animation sequence?我可以在动画序列中使用多少张 PNG 图像?
【发布时间】:2012-02-05 16:56:37
【问题描述】:

我有 45 个 PNG 文件,我想在使用 XML 动画文件的动画序列中使用它们。我注意到我无法为过去的 10 个 PNG 文件设置动画,而且我在动画播放到第 10 个图像之后遇到问题,否则它会崩溃。

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

【问题讨论】:

    标签: android animation png


    【解决方案1】:

    您需要检查崩溃原因,如果是内存不足错误,您可以尝试将 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);
    }
    

    【讨论】:

    • 我会试一试,您能否指出创建处理程序的方向或告诉我可以使用什么来报告此问题?
    • 你完全正确!这是一个内存不足错误,它说“位图大小超出了 VM 预算”。我什至没有想过要在我的手机上尝试它,它确实有效,哈哈!
    • 你也可以尝试使用像trimage.org这样的无损压缩来优化PNG文件
    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 2015-03-27
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多