国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android開發之大圖片內存溢出優化

yibinnn / 522人閱讀

摘要:縮放加載加載大圖片使用大圖片時可能出現的異常在下采用來表示顏色每個像素占圖片手機寬縮放高縮放需要考慮的問題動態獲取圖片的分辨率動態獲取手機分辨率實現步驟獲取手機屏幕的寬和高獲取圖片的寬和高創建的配置參數設置的值為此時方法并不會去真正

縮放加載加載大圖片(使用大圖片時可能出現的異常)

09-14 00:59:51.813: E/AndroidRuntime(2128): Caused by: java.lang.OutOfMemoryError
09-14 00:59:51.813: E/dalvikvm-heap(2128): Out of memory on a 30720012-byte allocation.
在Android下采用ARGB來表示顏色 每個像素占4byte

PS:
圖片:2400*3200
手機:320*480
寬縮放: 7
高縮放: 6
需要考慮的問題 :(1)動態獲取圖片的分辨率 (2)動態獲取手機分辨率

實現步驟

(1)獲取手機屏幕的寬和高

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
(2)獲取圖片的寬和高

//創建BitmapFactor的配置參數
BitmapFactory.Options options = new Options();
//設置options的inustDecodeBounds值為true
options.inJustDecodeBounds = true;
//此時BitmapFactory.decode方法并不會去真正加載圖片,但是可以返回圖片的一些信息(如寬和高)
BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher, options);
//根據options的配置信息獲取圖片的寬和高
int imgWidth = options.outWidth;
int imgHeight = options.outHeight;
(3)計算縮放比
int scale = 1;//默認的縮放比
int scaleX = imgWidth/screenWidth;//圖片寬的縮放比
int scaleY = imgHeight/screenHeight;//圖片高的縮放比
if(scaleX>scaleY && scaleX>scale){
//當寬的縮放比大于高的縮放比,并且縮放比大于默認縮放比時,將寬的縮放比賦給默認縮放比
scale = scaleX;
}else if(scaleY>scaleX && scaleY>scale){
   scale = scaleY;
}
(4)按照縮放比顯示圖片 

 //options.inSampleSize = scale;//根據inSampleSize(采樣率)來進行縮放,當inSampleSize為2時,圖片縮放為原圖大小的1/4;
 //設置options.inJustDecodeBounds值為false,即開始真正加載圖片
 options.inJustDecodeBounds = false;
 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher, options);
 iv.setImageBitmap(bitmap);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66421.html

相關文章

  • 內存 問題- 收藏集 - 掘金

    摘要:然而,中依然有可能發生內存泄漏。所以你的安卓快速定位解決內存泄漏掘金昨天是個好日子,程序員的節日,在這里給所有的程序員送上一份遲到的祝福。應用內存泄漏的定位分析與解決策略掘金,大家好,我是。 Android 性能優化之巧用軟引用與弱引用優化內存使用 - Android - 掘金前言: 從事Android開發的同學都知道移動設備的內存使用是非常敏感的話題,今天我們來看下如何使用軟引用與弱...

    TIGERB 評論0 收藏0
  • 2019最新Android面試題

    摘要:若攔截事件返回為,表示攔截,事件不會向下層的或者傳遞,表示不攔截,繼續分發事件。五注冊反注冊未成對使用引起的內存泄漏。七集合對象沒有及時清理引起的內存泄漏。 原文鏈接:https://blog.csdn.net/wen_hah... 版權聲明:本文為博主原創文章,轉載請附上博文鏈接! 前言 金三銀四到來了,找工作的好時候到了,小伙伴們是不是都在忙著找工作呢,小弟前一陣也是忙著在找工作,...

    plus2047 評論0 收藏0
  • 記一次驚心動魄的前端性能優化之旅

    摘要:方案未引起重視,并沒有做出相應處理。頁面中元素的布局是相對的,因此一個元素的布局發生變化,會聯動地引發其他元素的布局發生變化。這里可以使用的和來分析的性能。寫在最后性能優化是一門做減法的藝術。 歡迎一起交流 歡迎關注我的個人公眾號,不定期更新自己的工作心得。showImg(https://segmentfault.com/img/bVEk23?w=258&h=258); 正文從這里開始...

    Bryan 評論0 收藏0

發表評論

0條評論

yibinnn

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<