Я пытаюсь загрузить некоторые изображения на мой 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.
Я хочу знать, как решить эту проблему с памятью ... или где я ошибаюсь?