【问题标题】:OUT OF MEMORY ERROR with "Android-Universal-Image-Loader"“Android-Universal-Image-Loader”出现内存不足错误
【发布时间】:2013-03-15 23:16:07
【问题描述】:

我用 Android-Universal-Image-Loader 制作了 gridview

而且,当我选择一张图片时,它会出现在 imageview 上。

当我第一次选择它时,它工作正常。但第二个崩溃了。 (内存不足)

我加载了超过 1M 大小的图像(最初是默认相机拍摄的)

这里是初始化代码

    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();

这里是当它被选中时获取 uri

    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();

        }
    });

这是活动的结果

    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);
    }
}   

提前致谢,

【问题讨论】:

  • 你的问题解决了吗??

标签: out-of-memory universal-image-loader


【解决方案1】:

根据作者的建议在displayoptions中提到以下两行

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

在配置中

.memorycache(new WeakMemoryCache())

【讨论】:

    猜你喜欢
    • 2013-10-30
    • 2013-06-17
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2012-11-08
    相关资源
    最近更新 更多