0

I made gridview with Android-Universal-Image-Loader

and, when I select a picture, it's goes on the imageview.

when I select it first, it works fine. but the second one is crashed. (out of memory)

I load over 1M size image (originally took by default camera)

here is code to initialize

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
        .memoryCacheExtraOptions(480, 800) // default = device screen dimensions
        .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75)
        .taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
        .taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR)
        .threadPoolSize(3) // default
        .denyCacheImageMultipleSizesInMemory()
        .memoryCacheSize(2 * 1024 * 1024)
        .discCacheSize(50 * 1024 * 1024)
        .discCacheFileCount(100)
        .enableLogging()
        .build();

and here is get uri when it's selected

    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // when clicked image
            //startImagePagerActivity(position);
            //URI imageUri = URI.parse("android.resource://com.kmob.camera/" + parent.getItemIdAtPosition(position));
            SignUp.profilePath =  Uri.parse(imageUrls[position].substring(7)); // return selected uri except prefix, "file://"
            Log.v("OWL", "selected file: " + imageUrls[position].substring(7));
            finish();

        }
    });

and here is result for activity

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    //mProfile.notifyAll();
    if(profilePath.getPath().toString().length()>0){
        mProfile.setImageURI(profilePath);
    }
}   

Thanks in advance,

Joseph
  • 55
  • 1
  • 3
  • 10

1 Answers1

0

According to the author suggestion mention the following two lines in displayoptions

.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.bitmapConfig(Config.RGB_565) in displayioptions.

And in configuration

.memorycache(new WeakMemoryCache())
Surya
  • 21
  • 1
  • 3