しばらくAndroidでカスタムボタンを作成しました。物事はシンプルで、ちょうどボタン状態のためのイメージリソースを作り、そのセレクタを作った。すべてがスムーズで素敵でした。今私は新しい状況に遭遇しました。 私はアニメーションのドロウアブルを作成し、それをボタンの背景として設定しました。AndroidでAnimationDrawableとしての背景のボタン状態
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/frame1" android:duration="600" />
<item android:drawable="@drawable/frame2" android:duration="300" />
<item android:drawable="@drawable/frame3" android:duration="500" />
</animation-list>
アニメーションをボタンの背景として設定すると、正常に動作します。私はボタンの通常の状態は、背景と押された状態の静止画像としてアニメーションを持つことになり、単純なセレクタ
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/animation" />
<item
android:state_pressed="true"
android:drawable="@drawable/pressed" />
</selector>
を作成しようとすると、物事は正しい動作しません。
私のアニメーションがセレクタから正しく取られることはありませんので、私は、ボタンの背景を取得し、 ここ@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
btn = (Button)findViewById(R.id.btnAnim);
btnAnimation = (AnimationDrawable) btnAnim.getBackground();
btnAnimation.start();
}
が問題のように見えるアニメーションを開始onWindowFocusに私のメインの活動に
、と私は取得次のエラーが発生しました:
03-14 15:21:16.146: ERROR/AndroidRuntime(440): FATAL EXCEPTION: main
03-14 15:21:16.146: ERROR/AndroidRuntime(440): java.lang.ClassCastException: android.graphics.drawable.StateListDrawable
03-14 15:21:16.146: ERROR/AndroidRuntime(440): at com.bebenjoy.MainActivity.onWindowFocusChanged(MainActivity.java:53)
03-14 15:21:16.146: ERROR/AndroidRuntime(440): at ...
これを修正する方法はありますか?ありがとう。
uはあなたが作った –