전 세계보기를 사용하여 이미지를로드하고 이미지 미리보기를로드하는 데 범용 이미지 로더를 사용하고 있습니다. 메모리 부족 오류 문제가 계속 발생합니다. 구성, 표시 옵션을 변경하는 많은 메소드를 시도했습니다. 그러나 아무 사용. 이를 해결하기 위해 올바른 방법을 제공하십시오.Android 유니버설 이미지 로더가 메모리 부족 오류
여기에, 보편적 인 이미지 로더 lib 디렉토리를 사용하여 이미지를 표시하는 내 코드입니다
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)
이미지를로드하지 것인가? – KOTIOS
코드와 오류는 어디에 있습니까? – GrIsHu
@GrIsHu 내 코드가 게시됩니다. –