成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Android開發(fā)之大圖片內(nèi)存溢出優(yōu)化

yibinnn / 518人閱讀

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

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

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
手機(jī):320*480
寬縮放: 7
高縮放: 6
需要考慮的問題 :(1)動態(tài)獲取圖片的分辨率 (2)動態(tài)獲取手機(jī)分辨率

實(shí)現(xiàn)步驟

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

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

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66421.html

相關(guān)文章

  • 內(nèi)存 問題- 收藏集 - 掘金

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

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

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

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

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

    Bryan 評論0 收藏0

發(fā)表評論

0條評論

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