2013-08-04 5 views
0

Я пытаюсь сделать фоновое изображение RelativeLayout animate-able, пытаясь установить количество кадров изображения.«Исключение класса Cast» при попытке установить рамки изображения на фон

Вот как я установил анимацию

private View fullView; 
fullView = (View)findViewById(R.id.fullView); 

Resources res = getResources(); 
      Drawable drawable = res.getDrawable(R.drawable.eng_anim_1); 
      drawable.setAlpha(100); 

      fullView.setBackgroundDrawable(drawable); 
      AnimationDrawable progressAnimation = (AnimationDrawable) fullView.getBackground(); 
      progressAnimation.start(); 

Вот мой «Список изображений»

<?xml version="1.0" encoding="utf-8"?> 


    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selected" android:oneshot="false"> 
<item android:drawable="@drawable/eng_anim_1" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_2" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_3" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_5" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_6" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_7" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_8" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_9" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_10" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_11" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_12" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_13" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_14" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_15" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_16" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_17" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_18" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_19" android:duration="50" /> 
<item android:drawable="@drawable/eng_anim_20" android:duration="50" /> 

</animation-list> 

Но проблема в том, я получаю следующее сообщение об ошибке

08-04 19:03:51.582: E/AndroidRuntime(504): FATAL EXCEPTION: main 
08-04 19:03:51.582: E/AndroidRuntime(504): java.lang.RuntimeException: Unable to start activity ComponentInfo{yohanSoftware.languageGame/yohanSoftware.languageGame.Game}: java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.os.Looper.loop(Looper.java:123) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-04 19:03:51.582: E/AndroidRuntime(504): at java.lang.reflect.Method.invokeNative(Native Method) 
08-04 19:03:51.582: E/AndroidRuntime(504): at java.lang.reflect.Method.invoke(Method.java:507) 
08-04 19:03:51.582: E/AndroidRuntime(504): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-04 19:03:51.582: E/AndroidRuntime(504): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-04 19:03:51.582: E/AndroidRuntime(504): at dalvik.system.NativeStart.main(Native Method) 
08-04 19:03:51.582: E/AndroidRuntime(504): Caused by: java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable 
08-04 19:03:51.582: E/AndroidRuntime(504): at yo.lang.Game.setUI(Game.java:236) 
08-04 19:03:51.582: E/AndroidRuntime(504): at yo.lan.Game.onCreate(Game.java:127) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-04 19:03:51.582: E/AndroidRuntime(504): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
08-04 19:03:51.582: E/AndroidRuntime(504): ... 11 more 

Я не понимаю, почему я получаю это. Пожалуйста, помогите!

ответ

3

Это потому, что вы пытаетесь нанести BitmapDrawable (первый кадр анимации) на AnimationDrawable. Попробуйте вот так:

Drawable drawable = res.getDrawable(R.drawable.<your_animation_xml_file_name>); 
+0

Спасибо за ответ. Итак, значит ли это, что я должен поместить этот XML-файл в папку drwable? в настоящее время он находится в папке «layouts» –

+0

да, здесь есть пример: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html – Caner

+0

awesome! Большое спасибо!!!!!!! –

Смежные вопросы