Строка XML-файла #35: ошибка надувания класса <unknown> - слишком много изображений для анимации [android]
У меня есть анимация рисования кошачьего прыжка (он состоит из 5 отдельных загружаемых изображений), вот анимация для XML:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cat_page_4_animation" android:oneshot="true">
<item android:drawable="@drawable/page_4_kitten_jumping1" android:duration="250" />
<item android:drawable="@drawable/page_4_kitten_jumping2" android:duration="250" />
<item android:drawable="@drawable/page_4_kitten_jumping3" android:duration="250" />
<item android:drawable="@drawable/page_4_kitten_jumping4" android:duration="250" />
<item android:drawable="@drawable/page_4_kitten_jumping5" android:duration="250" />
<item android:drawable="@drawable/page_4_kitten_jumping1" android:duration="250" />
Я подозреваю, что проблема заключается в анимации - в ней слишком много изображений, при первом запуске активности происходит сбой, я нажимаю ОК, она запускается!
Ошибка, которую я вижу при первом сбое, такова:
process: nis.animation_door, PID: 24446
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:594)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:429)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:856)
at android.content.res.Resources.loadDrawable(Resources.java:2129)
at android.content.res.Resources.getDrawable(Resources.java:708)
at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:963)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:893)
at android.content.res.Resources.loadDrawable(Resources.java:2111)
at android.content.res.Resources.getDrawable(Resources.java:708)
at android.view.View.setBackgroundResource(View.java:15451)
at nis.animation_door.Page5.onCreate(Page5.java:31)
Код:
protected void onCreate(Bundle savedInstanceState) {
Toast.makeText(Page5.this, " page 5 onCreate", Toast.LENGTH_SHORT).show();
super.onCreate(savedInstanceState);
setContentView(R.layout.page5);
forward = (ImageView)findViewById(R.id.to_page_6);
backward = (ImageView)findViewById(R.id.to_page_4);
cat_jump = (ImageView)findViewById(R.id.cat_jump);
cat_jump.setBackgroundResource(R.drawable.page_5_cat_jumping);
final AnimationDrawable frameAnimation = (AnimationDrawable) cat_jump.getBackground();
cat_jump.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
frameAnimation.start();
}
});
Фактическая строка, где это терпит крах, является cat.setBackgroundResource(). Но почему он запускается после сбоя?