1. 程式人生 > >關於使用ImageLoader出現的Bitmap too large to be uploaded into a texture

關於使用ImageLoader出現的Bitmap too large to be uploaded into a texture

用ImageLoad載入圖片,會有的圖片load不出來,報出的警告是: Bitmap too large to be uploaded into a texture (440x6405, max=4096x4096):

經過查詢資料是因為當開啟硬體加速的時候,GPU對於openglRender 有一個限制,這個不同的手機會有不同的限制:

這個限制值可以通過canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()來獲得。

至於原則上是當沒有硬體加速時應該不會出現這個錯誤,但是沒有驗證

對於ImageLoader的處理方式時可以對ImageView設定最大高度和最大寬度:

android:maxHeight="1000dip"

android:maxWidth="1000dip"

同時相應的scaleType為FIT_CENTER  FIT_XY   FIT_START FIT_END CENTER_INSIDE  

在上面這些scaleType下,當bitmap的高和寬一個大於所設的最大值時,imageloader會自動處理,按比例縮放

當scaleType為 MATRIX  CENTER  CENTER_CROP時  要高寬兩者都大於所設的最大值時,imageloder才會處理

附上相關的網站參考