Bitmap高效加載

Bitmap加載方式

  1. BitmapFactory.decodeByteArray() 字節(jié)數(shù)組
  2. BitmapFactory.decodeFile() 文件路徑
  3. BitmapFactory.decodeResource() 資源ID
  4. BitmapFactory.decodeStream() 流

如何高效加載Bitmap

  • 理論依據(jù):BitmapFactory.Options這個類為我們高效加載提供了可能术徊。
  • BitmapFactory.Options有以下幾個重要屬性:
  1. inJustDecodeBounds
  2. outWidth&outHeight
  3. inSampleSize

代碼

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class BitmapUtil {
    public static Bitmap ratio(String filePath,int pixelW,int pixelH){
        BitmapFactory.Options newOptions = new BitmapFactory.Options();
        newOptions.inJustDecodeBounds = true;
        newOptions.inPreferredConfig = Bitmap.Config.RGB_565;
        //預加載
        BitmapFactory.decodeFile(filePath,newOptions);
        int originalW = newOptions.outWidth;
        int originalH = newOptions.outHeight;
        newOptions.inSampleSize = getSimpleSize(originalW,
                originalH,pixelW,pixelH);
        newOptions.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(filePath,newOptions);
    }

    private static int getSimpleSize(int originalW, int originalH, int pixelW, int pixelH) {
        int simpleSize = 1;
        if (originalW > pixelW || originalH > pixelH) {
            //計算出實際寬高和目標寬高的比率
            final int widthRatio = Math.round((float) originalW / (float) pixelW);
            final int heightRatio = Math.round((float) originalH / (float) pixelH);
            /*選擇寬和高中最小的比率作為inSampleSize的值闻葵,這樣可以保證最終圖片的寬和高
            一定都會大于等于目標的寬和高牙丽。*/
            simpleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
        }
        return simpleSize;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膳算,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子石景,更是在濱河造成了極大的恐慌劈猿,老刑警劉巖拙吉,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揪荣,居然都是意外死亡筷黔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門仗颈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佛舱,“玉大人,你說我怎么就攤上這事挨决∏胱妫” “怎么了?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵脖祈,是天一觀的道長肆捕。 經(jīng)常有香客問我,道長盖高,這世上最難降的妖魔是什么慎陵? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮喻奥,結(jié)果婚禮上席纽,老公的妹妹穿的比我還像新娘。我一直安慰自己撞蚕,他們只是感情好润梯,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甥厦,像睡著了一般纺铭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矫渔,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天彤蔽,我揣著相機與錄音,去河邊找鬼庙洼。 笑死,一個胖子當著我的面吹牛镊辕,可吹牛的內(nèi)容都是我干的油够。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼征懈,長吁一口氣:“原來是場噩夢啊……” “哼石咬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卖哎,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鬼悠,失蹤者是張志新(化名)和其女友劉穎删性,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焕窝,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蹬挺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了它掂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巴帮。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虐秋,靈堂內(nèi)的尸體忽然破棺而出榕茧,到底是詐尸還是另有隱情,我是刑警寧澤客给,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布用押,位于F島的核電站,受9級特大地震影響靶剑,放射性物質(zhì)發(fā)生泄漏蜻拨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一抬虽、第九天 我趴在偏房一處隱蔽的房頂上張望官觅。 院中可真熱鬧,春花似錦阐污、人聲如沸休涤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽功氨。三九已至,卻和暖如春手幢,著一層夾襖步出監(jiān)牢的瞬間捷凄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工围来, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跺涤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓监透,卻偏偏與公主長得像桶错,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胀蛮,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容