Android帧动画和OutOfMemoryError问题

时间:2012-02-03 19:22:47

标签: android animation out-of-memory

我在使用帧动画时遇到了一些麻烦: 我有一个带有ImageView的应用程序,我想在其上显示一些逐帧动画。 我的代码如下: main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/spotim000" />

</LinearLayout>

我的java是:

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class AnimationTestActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
    imageView1.setImageResource(R.drawable.spotlights);
}
}

spotlights.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/spotim000" android:duration="50" />
<item android:drawable="@drawable/spotim001" android:duration="50" />
<item android:drawable="@drawable/spotim002" android:duration="50" />
...
<item android:drawable="@drawable/spotim099" android:duration="50" />
<item android:drawable="@drawable/spotim100" android:duration="50" />

</animation-list>

我没有包含启动动画的代码 - 因为问题不在那里。 当我使用模拟器或使用我的HTC Desire启动此代码时 - 代码运行完美。但是,当我在三星Galaxy S2上运行时 - 我收到此错误:“java.lang.outofmemoryerror位图大小超过位图上的vm预算”

当我删除一些帧时(留下原来101中的20个),它在星系上也可以正常工作。但我需要所有的帧,我不能真正理解为什么它适用于HTC Desire而不是更强大的Galaxy S2

我一直在寻找有类似问题的其他帖子,但我能找到的唯一一个是这个未回答的帖子: Android Animation (XML) Giving OutOfMemoryError: bitmap size exceeds VM budget (only on Motorola Droids?)

任何人对这件事都有任何见解吗?

非常感谢,Shai:)

0 个答案:

没有答案