Android 使用AnimationDrawable时内存不足错误

Android 使用AnimationDrawable时内存不足错误,android,animation,Android,Animation,嗨,我正在尝试从几个png图像创建一个徽标动画。我已经创建了一个动画,但由于内存不足而崩溃。有人知道这个问题的解决办法吗 这是我到目前为止得到的 这是我的动画列表 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/i

嗨,我正在尝试从几个png图像创建一个徽标动画。我已经创建了一个动画,但由于内存不足而崩溃。有人知道这个问题的解决办法吗

这是我到目前为止得到的

这是我的动画列表

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:drawable="@drawable/intro_animation_00" android:duration="50" /> 
  <item android:drawable="@drawable/intro_animation_01" android:duration="50" />  
  <item android:drawable="@drawable/intro_animation_02" android:duration="50" /> 
  <item android:drawable="@drawable/intro_animation_03" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_04" android:duration="50" />  
  <item android:drawable="@drawable/intro_animation_05" android:duration="50" />  
  <item android:drawable="@drawable/intro_animation_06" android:duration="50" /> 
  <item android:drawable="@drawable/intro_animation_07" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_08" android:duration="50" /> 
  <item android:drawable="@drawable/intro_animation_09" android:duration="50" />  
  <item android:drawable="@drawable/intro_animation_10" android:duration="50" /> 
  <item android:drawable="@drawable/intro_animation_11" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_12" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_13" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_14" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_15" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_16" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_17" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_18" android:duration="50" />  
  <item android:drawable="@drawable/intro_animation_19" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_20" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_21" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_22" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_23" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_24" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_25" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_26" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_27" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_28" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_29" android:duration="50" />
  <item android:drawable="@drawable/intro_animation_30" android:duration="50" />
</animation-list>

尝试在您的应用程序标签中添加
largeHeap=true
舱单

我希望这有帮助


或者尝试使用小尺寸的映像。

在emulator中增加堆内存大小。。我使用的是一个设备,而不是emulator或Anks,这很有效。几乎觉得太容易了。。。只要看一下,这种方法的影响是垃圾收集时间的增加,以及其他应用程序可能出现内存问题的可能性(我猜是在各自应用程序的恢复上),这是一种临时解决方案
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/bg"
    tools:context=".MenuActivity" >

        <ImageView
            android:id="@+id/myanimation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@anim/intro_animation"
        />

</RelativeLayout>
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_menu);
        ImageView myAnimation = (ImageView)findViewById(R.id.myanimation);
        final AnimationDrawable myAnimationDrawable
        = (AnimationDrawable)myAnimation.getDrawable();

        myAnimation.post(
        new Runnable(){

          @Override
          public void run() {
           myAnimationDrawable.start();
          }
        });

    }