2017-04-25 100 views
0

我正在使用庫Picasso下載圖片。對於小圖像來說效果很好,但對於1.5Mb或更多的圖像,方法onBitmapFailed被調用並且圖像不顯示。這是我該怎麼做的:Picasso未能加載大圖片

final int shortestSide = Math.min(image.getHeight(), image.getWidth()); 

final int longestSideView = Math.max(getAvailableHeight(), getAvailableWidth()); 
final float picassoScale = (float) longestSideView/(float) shortestSide; 

final int widthWithoutExif; 
final int heightWithoutExif; 

final int exifRotation = Util.mod(image.getExifOrientation(), 360); 
    switch (exifRotation){ 
     case 90: 
     case 270: 
      widthWithoutExif = image.getHeight(); 
      heightWithoutExif = image.getWidth(); 

      break; 
     default: 
      widthWithoutExif = image.getWidth(); 
      heightWithoutExif = image.getHeight(); 
    } 

final RequestCreator requestCreator; 
requestCreator = picasso.load(new File(cacheFilePath())); 
requestCreator.resize((int) (widthWithoutExif * picassoScale), (int) (heightWithoutExif * picassoScale)); 
requestCreator.into(this); 

有人知道我失蹤了嗎?提前致謝!

編輯 這是堆棧跟蹤:

java.io.IOException: Cannot reset 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at  com.squareup.picasso.MarkableInputStream.reset(MarkableInputStream.java:99) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at com.squareup.picasso.BitmapHunter.decodeStream(BitmapHunter.java:140) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:217) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at java.lang.Thread.run(Thread.java:818) 
04-25 14:20:30.225 26278-26278/debug W/System.err:  at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411) 
+2

設置[listener()'](https://square.github.io/picasso/2.x/picasso/index.html?com/squareup/picasso/Picasso.Builder.html)以獲得關於失敗的例外信息。 – CommonsWare

+0

我已經試過了,我得到MemoryOutException,我將編輯我的問題,對不起,我忘了那 – IrApp

+1

使用的圖像的分辨率太高。使用更少像素的圖像。或者縮放更多。 – greenapps

回答

2

最後,我發現這是一個Picasso錯誤。問題link。它通過升級到2.5.3-SNAPSHOT來修復。