我正在使用通用图像加载器在网格视图中加载图像并加载图像预览,内存不足错误问题不断发生。我尝试了很多方法来更改配置、显示选项。但没有用。请给出正确的解决方法。
这是我使用通用图像加载器库显示图像的代码,
ImageLoader imageLoader = ImageLoader.getInstance();
ImageLoaderConfiguration imageLoaderconfig = new ImageLoaderConfiguration.Builder(
ImagePreview.this).threadPoolSize(1)
.writeDebugLogs().memoryCache(new WeakMemoryCache())
.build();
imageLoader.init(imageLoaderconfig);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.empty_icon)
.bitmapConfig(Config.RGB_565)
.showImageForEmptyUri(R.drawable.image_for_empty_url)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT).build();
imageLoader.displayImage("file://"
+ CommonVariables.preview_image_path, image_preview,
options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
// TODO Auto-generated method stub
findViewById(R.id.pb_pd).setVisibility(
View.INVISIBLE); // progress bar
Toast.makeText(getApplicationContext(),
"Oops ! Please try again later",
Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
// TODO Auto-generated method stub
Animation anim = AnimationUtils.loadAnimation(
ImagePreview.this, R.anim.fade_in);
findViewById(R.id.pb_pd).setVisibility(
View.INVISIBLE); // progress bar
image_preview.setAnimation(anim);
anim.start();
}
@Override
public void onLoadingCancelled(String imageUri,
View view) {
// TODO Auto-generated method stub
findViewById(R.id.pd).setVisibility(View.INVISIBLE); // progress bar
}
});
例外:(原木猫)
10-22 12:30:00.414: E/AndroidRuntime(6908): FATAL EXCEPTION: main
10-22 12:30:00.414: E/AndroidRuntime(6908): java.lang.OutOfMemoryError
10-22 12:30:00.414: E/AndroidRuntime(6908): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
10-22 12:30:00.414: E/AndroidRuntime(6908): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:546)
10-22 12:30:00.414: E/AndroidRuntime(6908): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:320)
10-22 12:30:00.414: E/AndroidRuntime(6908): at com.doodleblue.dateitpro.Home.decodeSampledBitmapFromUri(Home.java:669)
10-22 12:30:00.414: E/AndroidRuntime(6908): at com.doodleblue.dateitpro.Home.addDateTime(Home.java:413)
10-22 12:30:00.414: E/AndroidRuntime(6908): at com.doodleblue.dateitpro.Home.callmethods(Home.java:356)
10-22 12:30:00.414: E/AndroidRuntime(6908): at com.doodleblue.dateitpro.Home.onCreate(Home.java:236)
10-22 12:30:00.414: E/AndroidRuntime(6908): at android.app.Activity.performCreate(Activity.java:5020)
10-22 12:30:00.414: E/AndroidRuntime(6908): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)