超大屏幕從資源文件獲取bitmap可能放大倍數過大的問題

超大屏幕從資源文件獲取bitmap可能放大倍數過大的問題,佔用內存也會過大。

根據log,看到我的lg g2手機的dpi爲480,小米手機2s爲320。

兩張圖片大小分別爲 70,110.

小米2s獲取圖片爲51,76,LG G2獲取bitmpa爲 76,114.

114的圖片還算正常,但是76的圖片居然比114的還要大,非常神奇的bug,應該屬於android神機bug,不明原因。

DisplayMetrics.DENSITY_XXHIGH=480

DisplayMetrics.DENSITY_XHIGH=320

目前想到的方法是根據屏幕dpi來選擇解碼資源方式。這個不明白原理,純粹調試出來的結果。


if (bitmap_award == null) {
            int densityDpi = getResources().getDisplayMetrics().densityDpi;
            BitmapFactory.Options opts = new BitmapFactory.Options();
            opts.inPreferredConfig = Bitmap.Config.ALPHA_8;
            if (densityDpi > DisplayMetrics.DENSITY_XHIGH) {
                opts.inTargetDensity = DisplayMetrics.DENSITY_XHIGH;
                bitmap_award = BitmapFactory.decodeResource(getResources(), R.drawable.award, opts);
            }else{
                bitmap_award = BitmapFactory.decodeResource(getResources(), R.drawable.award);
            }
        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章