簡體   English   中英

Android加載大位圖

[英]Android loading of large bitmaps

我正在制作一個Android應用程序,需要在cavas中加載圖像(位圖)並使用“捏縮放”手勢調整其大小。 但是,當圖像超過一定大小時,應用程序將崩潰(OutOfMemory異常)。 如何優化圖像的加載和處理?

要加載我使用的圖像:

BitmapFactory.decodeResource (ctx.getResources (), R.drawable.image)

繪制:

imgCanvas.drawBitmap (image, posX, posY, null), 

更改大小:

Bitmap.createScaledBitmap (originalBitmap, neww, NEWH, true);

這不是小事。

根據圖像的當前比例和圖像的當前可見部分,僅以適當的分辨率加載該圖像的一部分:
https://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html

當縮小並且要顯示按比例縮小的整個圖像時,請使用此BitmapRegionDecoder類中的方法,該方法采用BitmapFactory.Options參數並將其inSampleSize設置為大於1的值(最好是2的冪的值) :
https://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize

當在已經顯示在較低的分辨率,第一變焦縮放(在要用inSampleSize的值> 1)和懶惰地加載較高分辨率版本(其中inSampleSize使用比您所使用的前一值小) BitmapRegionDecoder和淡入高分辨率版本。

當用戶放大時,請繼續這樣做,直到inSampleSize為1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM