1. 程式人生 > >關於glide載入圖片被拉伸後失真的問題

關於glide載入圖片被拉伸後失真的問題

網上有很多關於關於gilde載入圖片拉伸解決辦法,但是有的可能對於有的人好使,有的人不好使,這是為什麼呢?原因在於圖片的問題,其實那些處理方式都沒有解決被拉伸失真的問題。只是恰好圖片可以這樣處理罷了。

關於啟動頁一般都會使用glide載入本地圖片或廣告圖片,但是你如果用h5做的啟動頁當我沒說。請不要使用imageView.setImageResource(R.mipmap.*);這個方法,因為在大屏手機上可能會oom,但是你也可以使用BitmapFactory節省資源去載入image圖片,但是還是可能會存在失真的問題。
android螢幕太多,現在也除了劉海屏等,所以在部分手機上必須要拉伸充滿螢幕,不然你啟動頁揮著歡迎也就會有白邊。那麼glide就會帶來這個拉伸後失真的問題。
下面可以看看下面兩張圖片的對比!
第一張:這張圖片就是拉伸後失真的,手機上比較明顯,有很多橫槓
失真圖片


這裡是處理後的圖!
這裡寫圖片描述

網上很多部落格都說設定glide以asBitmap方式去載入就不會這樣了,其實不然,必須在加上

.format(DecodeFormat.PREFER_ARGB_8888)//設定圖片解碼格式

預設格式RGB_565使用記憶體是ARGB_8888的一半,但是圖片質量就沒那麼高了,而且不支援透明度。完整程式碼如下:

Glide.with(context)
.load(R.mipmap.*)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)//設定圖片解碼格式
.placeholder(R.mipmap.icon_banner_default)
.error(R.mipmap.icon_banner_default)
.into(imageView);