2014-03-07 7 views
1

안녕하세요, 저는 애니메이션을 만든 몇 개의 png 이미지에서 로고 애니메이션을 만들려고하는데 메모리 부족 오류로 인해 충돌이 발생합니다. 누구든지 이것에 대한 해결책을 알고 있습니까?AnimationDrawable을 사용할 때 메모리 부족 오류가 발생했습니다.

을 heres 내가 무엇을 지금까지

을 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

시도는을 추가 귀하의
매니페스트의 애플리케이션 태그에

이 도움이 되었기를 바랍니다.

또는 작은 크기의 이미지를 사용해보십시오.

+0

환호성이 작동했습니다. –

+0

감사합니다. 거의 느껴지지 않았다 ... 단지이 접근 방식의 영향이 가비지 콜렉션에 소요되는 시간을 증가시키고 다른 앱에 메모리 문제가 발생할 가능성이 있다는 것을 읽었다. (각각의 앱을 다시 시작할 때 나는 –

+0

임시 솔루션 –

관련 문제