Я создал анимацию для рисования и просмотра изображений в моей основной ветке игры, которая настраивается на основе действия, которое обрабатывает игровую ветку (запускает ее и т. Д.). Мой код в этой операции обработки выглядит так:
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.one), 1000);
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.two), 1000);
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.three), 1000);
mDistractionsThread.animation.setOneShot(false);
mDistractionsThread.imageAnim =(ImageView) findViewById(R.id.img);
mDistractionsThread.imageAnim.setBackgroundDrawable(mDistractionsThread.animation);
mDistractionsThread.animation.start();
И, как вы можете видеть, переменная mDistractionsThread является дескриптором самого потока. Это прекрасно компилируется, но отображает только первый кадр (R.drawable.one) и вообще не анимируется. Что я пропустил?
Я пытался установить animation.start () из run () в mDistractionsThread, но это только дало мне фатальное исключение, потому что представление можно изменять только из класса, который изменяет его поля - что в данном случае не является игровым потоком. .
Как я могу решить эту проблему и получить анимацию по кадрам, а для бонусных очков, перемещаясь по оси X?!
Большое спасибо