Параметры списка анимации: как я могу использовать inSampleSize, чтобы уменьшить объем памяти? - PullRequest
3 голосов
/ 17 сентября 2011

Я использую список анимации, определенный в xml, чтобы показать анимацию в моем меню:

<?xml version="1.0" encoding="utf-8"?>
<animation-list     
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/intro_anim"
    android:oneshot="true"
    >
    <item android:drawable="@drawable/intro_0001" android:duration="100" />
    <item android:drawable="@drawable/intro_0002" android:duration="100" />
    <item android:drawable="@drawable/intro_0003" android:duration="100" />
    <item android:drawable="@drawable/intro_0004" android:duration="100" />
    <item android:drawable="@drawable/intro_0005" android:duration="100" />
    <item android:drawable="@drawable/intro_0006" android:duration="100" />
    <item android:drawable="@drawable/intro_0007" android:duration="100" />
    <item android:drawable="@drawable/intro_0008" android:duration="100" />   
    <item android:drawable="@drawable/intro_0009" android:duration="100" />
    <item android:drawable="@drawable/intro_0010" android:duration="100" />
    <item android:drawable="@drawable/intro_0011" android:duration="100" />
    <item android:drawable="@drawable/intro_0012" android:duration="100" />
    <item android:drawable="@drawable/intro_0013" android:duration="100" />
    <item android:drawable="@drawable/intro_0014" android:duration="100" />
    <item android:drawable="@drawable/intro_0015" android:duration="100" />
    <item android:drawable="@drawable/intro_0016" android:duration="100" /> 
    <item android:drawable="@drawable/intro_0017" android:duration="100" />
    <item android:drawable="@drawable/intro_0018" android:duration="100" />
    <item android:drawable="@drawable/intro_0019" android:duration="100" /> 
    <item android:drawable="@drawable/intro_0020" android:duration="100" /> 
    <item android:drawable="@drawable/intro_0021" android:duration="100" /> 
    <item android:drawable="@drawable/intro_0022" android:duration="100" /> 
</animation-list> 

Я бы хотел уменьшить занятость памяти для этих растровых изображений. В других ситуациях я сделал:

options=new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap mybmp = BitmapFactory.decodeResource(getResources(), R.drawable.mypng, options);

Но как я могу сделать то же самое сейчас? Мой код для рисования анимации:

ImageView mIntro = (ImageView) findViewById(R.id.Image_Intro);
mIntro.setBackgroundResource(R.drawable.intro_anim); // reference to xml anim
AnimationDrawable frameAnimation = (AnimationDrawable)mIntro.getBackground();
frameAnimation.start();   // this is in the onWindowsFocusChanged()
...