【问题标题】:How to optimize frame animation?如何优化帧动画?
【发布时间】:2013-03-18 04:08:32
【问题描述】:

我想做 30 帧的帧动画。 我的代码是:

animation = new AnimationDrawable();
    for (int i= 1; i<= 30 ; i++){
        frame=  "xyz"+ i;
        resource    =   this.getResources().getIdentifier(frame, "drawable", "com.example.frameanimation");
        Log.e("123", "resource value======"+resource+"============"+frame);

        animation.addFrame(getResources().getDrawable(resource), 50);


            System.gc();

    }

    animation.setOneShot(false);

在这段代码中,我包含了System.gc();。这会帮助我优化内存相关问题吗?或者它仍然可以给出与内存相关的问题。这是否意味着帧动画时内存中存在的30张图像将被销毁?

还有其他方法可以优化吗? 请提出建议。

提前致谢。

【问题讨论】:

    标签: android android-animation android-image animationdrawable


    【解决方案1】:

    System.gc() 是垃圾收集器的提示。这意味着垃圾收集器在执行这行代码后可能不会收集垃圾。

    优化这个的好方法是优化你正在加载的drawable。您可以根据屏幕 DPI 加载。在小屏幕内加载大图像是没有用的。阅读这篇关于图像加载的帖子link

    您也可以尝试,将主图像用作背景,仅在动画中使用动画部分。

    或者,您可以尝试使用 SoftReference。如果遇到堆内存问题,这至少可以解决这个问题。

    【讨论】:

    • 我无法点击您提供的链接。
    猜你喜欢
    • 1970-01-01
    • 2014-10-14
    • 2011-11-15
    • 2011-09-21
    • 2019-10-29
    • 2012-08-19
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多