Я хочу добавить анимационный список в XML-файл selectors, который, в свою очередь, добавляется в ImageButton. В состоянии по умолчанию, я хочу, чтобы анимация была воспроизведена и в нажатом состоянии, я хочу отобразить другое изображение. Мой код работает на изменения состояния кнопки, но анимация не работает в состоянии по умолчанию. На самом деле я читаю AndroidКак добавить анимацию кадра в ImageButton, включая обработку изменения состояния кнопки?
anim_virus.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/attackvirus0" android:duration="50" />
<item android:drawable="@drawable/attackvirus1" android:duration="50" />
<item android:drawable="@drawable/attackvirus2" android:duration="50" />
<item android:drawable="@drawable/attackvirus3" android:duration="50" />
<item android:drawable="@drawable/attackvirus4" android:duration="50" />
<item android:drawable="@drawable/attackvirus5" android:duration="50" />
<item android:drawable="@drawable/attackvirus4" android:duration="50" />
<item android:drawable="@drawable/attackvirus3" android:duration="50" />
<item android:drawable="@drawable/attackvirus2" android:duration="50" />
<item android:drawable="@drawable/attackvirus1" android:duration="50" />
</animation-list>
button_state_virus.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/attackviruspress"/>
<item android:state_focused="true" android:drawable="@drawable/attackvirusfocus"/>
<item android:drawable="@drawable/anim_virus" android:state_enabled="true"/>
</selector>
И моя кнопка тег изображения и его параметры:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
android:layout_margin="10dp"
android:soundEffectsEnabled="true"
android:src="@drawable/button_state_virus"
android:id="@+id/button_infect"
android:contentDescription="@string/content_desc_virus"/>
Я попытался использовать AnimationDrawable, как вы уже упоминали. Но это приводит к сбою приложения с описанием ошибки «E/AndroidRuntime: FATAL EXCEPTION: main Process: java.lang.RuntimeException: не удается запустить Activity ComponentInfo {AttackPlanetActivity}: java.lang.ClassCastException: android.graphics.drawable.StateListDrawable не может быть отброшен в android.graphics.drawable.AnimationDrawable на android.app.ActivityThread.performLaunchActivity '. Если я установил anim_virus на кнопку и удалил параметр android: src, я смогу увидеть анимацию с AnimationDrawable start() –
, чтобы проверить новый почтовый редактор. –