Проблемы с памятью с imageswitcher - PullRequest
2 голосов
/ 30 ноября 2011

Я пытаюсь загрузить некоторые изображения на мой ImageSwitcher из папки на SDCard.Я создаю runnable и выполняю в цикле так, чтобы изображения отображались одно за другим.

 final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
             imageSwitcher.postDelayed(
                     new Runnable() {

                         @Override
                         public void run() {
                             i++;

                             File dir = new File("/sdcard/Wallpapers/My Wallpapers");
                             final File file[]=dir.listFiles();

                                 imageSwitcher.setImageURI(Uri.fromFile(file[i]));
                                 imageSwitcher.postDelayed(this, 2000); 


                         }
                     },
                     2000);

Некоторые изображения работают нормально, и через некоторое время приложение вылетает из-за исключения «outofmemory».

Я попытался решить проблему с памятью, поместив этот код чуть ниже:

"imageSwitcher.postDelayed (this, 2000);"

Это код, который я поместил туда:

ImageView v = (ImageView)imageSwitcher.getNextView(); 
BitmapDrawable bd = (BitmapDrawable) v.getDrawable(); 
Bitmap b = bd.getBitmap();
b.recycle();

Эта сила закрывает приложение с помощьюисключение Nullpointer.

Я хочу знать, как решить эту проблему с памятью ... или где я ошибаюсь?

...