iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 30
0
Software Development

Kotlin with android studio 開發30天不間斷系列 第 30

# Kotlin android 30天開發不間斷 day 30.Android 補充篇 OOM(OUT OF MEM)Bitmap處理方式

本來想在這三天寫一個手機相簿的程式 但是後來都被OOM佔住了時間

昨天一天都卡在bitmap 今天也花了一整天的時間在看書 都在看OOM處裡方式
絕大部分的書與網路資訊都給bitmap 繪圖的方式來處理

這是怎樣的情況呢 像是你拿一個4K的影片要播放但是電視不支援 也不能播放

這時候能怎樣做呢 就是轉檔

轉成電視可以看的規格再來播放 手機圖片也是這樣 當你圖片解析度太大 手機上絕大部分的記憶體 都被佔住的時候 系統就不會讓你使用 這時候就需要轉檔程式 重新將圖片解析度轉小 當比較不站住記憶體時 系統就會從新開放 這就是bitmap

先講說ImageView 要怎麼呈現bitmap

直接使用setImageBitmap放入bitmap物件就可以在ImageView上呈現

那bitmap物件 要怎麼製作

有兩種方式

一種是直接製作bitmap

另一種是利用bitmapFactory方式製作

我比較喜歡利用bitmapFactory方式製作 可以客製化

bitmapFactory.options有許多方法可以使用

可以直接參考

https://developer.android.com/reference/android/graphics/BitmapFactory.html

假設我現在一張圖片(/drawable/pic1.jpg)

假設想要把它縮小五倍

利用bitmapFactory.option.inSampleSize 來縮小比例

這樣應該就可以放入imageView中了


上一篇
Kotlin android 30天開發不間斷 day 29.Android 補充篇-相片讀取
系列文
Kotlin with android studio 開發30天不間斷30

尚未有邦友留言

立即登入留言