如何优化帧动画?

时间:2013-03-18 04:08:33

标签: android android-animation android-image animationdrawable

我想用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个图像将被破坏。?

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

先谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

您也可以尝试使用主图像作为背景,仅使用动画内部的动画部分。

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