我正在尝试从SDCard中的文件夹中将一些图像加载到我的ImageSwitcher上。我正在创建一个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异常关闭应用程序。
我想知道如何处理这个内存问题..或者我哪里出错?