2014-03-07 2 views
1

Привет Я пытаюсь создать анимацию логотипа из нескольких изображений png, я создал анимацию, и она выходит из строя с ошибкой вне памяти. Кто-нибудь знает решение этого?Ошибка при отсутствии памяти при использовании AnimationDrawable

Вот что я до сих пор

Heres мой список анимации

<?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> 

Heres мой Компоновка

<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> 

Heres моя активность

@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(); 
      } 
     }); 

    } 
+1

Увеличьте размер памяти кучи в эмуляторе. –

+0

Я использую устройство, а не эмулятор. –

ответ

3

пытаются добавить largeHeap=true в вашем приложении теги вашего
манифест.

Я надеюсь, что эта помощь.

или попробуйте использовать изображение небольшого размера.

+0

Приветствую, это сработало –

+0

Спасибо, это сработало. Чувствовал себя слишком легко ... просто прочитайте, что влияние этого подхода - увеличение времени, затрачиваемого на сбор мусора, и вероятность того, что в других приложениях могут возникнуть проблемы с памятью (по моему мнению, на возобновление соответствующих приложений) –

+0

- это временное решение –

Смежные вопросы