Android-анимация не воспроизводится - PullRequest
0 голосов
/ 05 ноября 2011

Я пытаюсь получить покадровую анимацию для запуска на Android 2.2 на машине с 2.2 vm, используя eclipse, и я не могу заставить ее работать.Он просто находится в первом кадре анимации.

Вот мой код активности:

public class SpriteAnimationActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        ImageView lView = (ImageView) findViewById(R.id.imageView1);
        AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();
        lAnimation.start();
    }
}

Вот мой XML-файл списка анимации:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <item android:drawable="@drawable/a1" android:duration="100" />
    <item android:drawable="@drawable/a2"   android:duration="100" />
    <item android:drawable="@drawable/a3"   android:duration="100" />    
</animation-list>

Я использую виджет imageView на своем главном экране, чтобы отобразить изображение, установив фон.Я пытался следовать руководству здесь http://developer.android.com/guide/topics/graphics/drawable-animation.html, но я не могу заставить его работать

Ответы [ 3 ]

2 голосов
/ 05 ноября 2011
1 голос
/ 05 ноября 2011

Вы должны принудительно запустить анимацию ...

 ImageView lView = (ImageView) findViewById(R.id.imageView1);

            lView.setBackgroundResource(R.drawable.my_animation_list);
            final AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();


    //        Button btn=
            findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                     lAnimation.start();
                }
            });
0 голосов
/ 21 ноября 2011

Вы должны запустить анимацию вручную через слушатель нажатия кнопки или использовать слушатель onWindowFocusChange, как показано ниже

public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(hasFocus) {
        lAnimation.start(); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...