我在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>
在按鈕的正常狀態下將有動畫作爲背景,並按下狀態的靜態圖像,事情不工作的權利。
在我的主要活動,在onWindowFocus我得到的按鈕,背景和啓動動畫
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
btn = (Button)findViewById(R.id.btnAnim);
btnAnimation = (AnimationDrawable) btnAnim.getBackground();
btnAnimation.start();
}
這裏似乎是問題,因爲我的動畫將不會正確地從選擇採取和我得到的以下錯誤:
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能PLZ爲主要活動的完整代碼 – 2011-03-14 13:34:54