2014-11-24 2 views
0

я получаю java.lang.ClassCastException: android.graphics.drawable.AnimationDrawableЯ получаю java.lang.ClassCastException: android.graphics.drawable.AnimationDrawable

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_frame_animation); 

    // Directory creation and unzip file  
    DirCreation dc = new DirCreation(); 
    dc.creation(); 

    showedImage = (ImageView) findViewById(R.id.imageAnimation); 
    showedImage.setBackgroundResource(R.drawable.ic_launcher); 
    frameAnimation = (AnimationDrawable) showedImage.getBackground(); 
} 

, а также я использую внешний источник SD карты в качестве ресурса изображения ...

Я использовал этот имя_файла фильтр файлов для извлечения файла из сд карты и хранится в строковый массив

  FilenameFilter filefilter = new FilenameFilter() 
     { 
      public boolean accept(File dir, String name) 
      { 
      return (name.endsWith(".jpeg") || 
        name.endsWith(".jpg") || 
        name.endsWith(".png")); 
      } 
     }; 

     String[] sNamelist = pictureDirectory.list(filefilter); 
     if (sNamelist.length == 0) 
     { 
      Log.d("Activity", "No pictures in directory."); 
      return; 
     } 

     for (String filename : sNamelist) 
     { 
      Log.d("Activity", pictureDirectory + "/" +filename); 

      frameAnimation.addFrame(
        Drawable.createFromPath(pictureDirectory.getPath() + "/" + filename), 210); 
     } 

     return; 
    } 

каталог фото мой путь к с d карты

pictureDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/animation/"); 

так, что теперь я должен сделать, чтобы установить это изображение как мой ресурс для кадра анимации ...

+0

Опубликовать полный след стека. Я думаю, показалImage.getBackground(); не возвращает AnimationDrawable – Amith

+0

опубликовать полный код src файла, в котором вы имеете исключение .. то есть, как вы объявляете frameAnimations и полный Logcat – Makwana

+0

я обновил свой код, посмотрю и предложите мне какое-то решение – parth

ответ

0

Вы должны иметь ряд рисуемых объектов, определенные в файлах XML для работы с AnimationDrawable класс. Пример следующий:

<!-- Animation frames are wheel0.png -- wheel5.png files inside the 
res/drawable/ folder --> 
<animation-list android:id="@+id/selected" android:oneshot="false"> 
    <item android:drawable="@drawable/wheel0" android:duration="50" /> 
    <item android:drawable="@drawable/wheel1" android:duration="50" /> 
    <item android:drawable="@drawable/wheel2" android:duration="50" /> 
    <item android:drawable="@drawable/wheel3" android:duration="50" /> 
    <item android:drawable="@drawable/wheel4" android:duration="50" /> 
    <item android:drawable="@drawable/wheel5" android:duration="50" /> 
</animation-list> 

Как предложено Amith, показаноImage.getBackground(); возвращает объект Drawable.

+0

, но сэр я использую sd card image resource – parth

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