2015-11-30 36 views
-2

当试图加载超过20个图像的OutOfMemoryError通用图像装载机

private Bitmap getImage(String url) 
{ 


    ImageLoader imageLoader=ImageLoader.getInstance(); 
    bitmap =imageLoader.loadImageSync(url); 

    return bitmap; 
} 

    11-30 13:12:59.609 11751-12088/com.example.navbartest E/ImageLoader: Failed to allocate a 1464012 byte allocation with 286292 free bytes and 279KB until OOM 
java.lang.OutOfMemoryError: Failed to allocate a 1464012 byte allocation with 286292 free bytes and 279KB until OOM 
at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) 
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:634) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:610) 
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:83) 
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:265) 
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:223) 
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136) 
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:297) 
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:209) 
at com.nostra13.universalimageloader.core.ImageLoader.loadImage(ImageLoader.java:528) 
at com.nostra13.universalimageloader.core.ImageLoader.loadImage(ImageLoader.java:489) 
    at com.nostra13.universalimageloader.core.ImageLoader.loadImageSync(ImageLoader.java:602) 
at com.nostra13.universalimageloader.core.ImageLoader.loadImageSync(ImageLoader.java:543) 
at com.example.navbartest.Parsers.InitNews.getImage(InitNews.java:58) 
at com.example.navbartest.Parsers.InitNews.<init>(InitNews.java:33) 
at com.example.navbartest.Parsers.InitNews.onLoadMore(InitNews.java:101) 
at com.example.navbartest.Fragments.MoneyFragment$onLoadMore.doInBackground(MoneyFragment.java:76) 
at com.example.navbartest.Fragments.MoneyFragment$onLoadMore.doInBackground(MoneyFragment.java:72)at android.os.AsyncTask$2.call(AsyncTask.java:292) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:818) 
+0

我有同样的好我得到的OutOfMemoryError几天前的问题,并通过在清单文件中声明此语句来解​​决它们 android:largeHeap =“true” –

回答

0

做这样的事情

private Bitmap getImage(String url) 
{ 
    DisplayImageOptions mOptions=new DisplayImageOptions.Builder().cacheOnDisk(true) 
      .showImageOnFail(R.drawable.no_image) 
      .showImageOnLoading(R.drawable.no_image) 
      .showImageForEmptyUri(R.drawable.no_image).cacheInMemory(true) 
      .bitmapConfig(Bitmap.Config.RGB_565).build(); 

    ImageLoader imageLoader=ImageLoader.getInstance(); 
    bitmap =imageLoader.loadImageSync(url,mOptions); 

    return bitmap; 
} 
相关问题