android獲取照片的快照 思路及實(shí)現(xiàn)方法
當(dāng)我們?cè)谧鱿鄡?cè)、上傳相關(guān)的應(yīng)用的時(shí)候需要獲取圖片的快照,這時(shí)候就需要獲取圖片的快照。
android中專門有一個(gè)BitmapFactory類可以來處理這類需求。
實(shí)現(xiàn)的步驟如下:
1.首先解析出圖片文件(注意在這里為了節(jié)約內(nèi)存將inJustDecodeBounds設(shè)為true,這樣的話解析的圖片的話只有圖片的尺寸大小信息)
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
2.獲取圖片的實(shí)際尺寸,并且算出實(shí)際大小和要顯示的大小的比例
int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight/ (float) DISPLAYHEIGHT);
int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth/ (float) DISPLAYWIDTH);
3.這兒是關(guān)鍵,為了只獲取這個(gè)圖片的快照需要將inSampleSize屬性設(shè)置為上一步算出的比例,這樣的話顯示的圖片寬高為 1/比例,大小為 1/比例的平方
if (heightRatio > 1 && widthRatio > 1) {
if (heightRatio > widthRatio) {
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
4.最后在重新解析一遍圖片
bmpFactoryOptions.inJustDecodeBounds = false;
bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
5.這樣的話就獲取到了圖片的一個(gè)快照
相關(guān)文章
Android中實(shí)現(xiàn)多線程操作的幾種方式
多線程一直是一個(gè)老大難的問題,首先因?yàn)樗y以理解,其次在實(shí)際工作中我們需要面對(duì)的關(guān)于線程安全問題也并不常見,今天就來總結(jié)一下實(shí)現(xiàn)多線程的幾種方式,感興趣的可以了解一下2021-06-06Android Application級(jí)別自定義Toast
這篇文章主要為大家詳細(xì)介紹了Android Application級(jí)別自定義Toast,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Android 啟動(dòng)activity的4種方式及打開其他應(yīng)用的activity的坑
這篇文章主要介紹了Android 啟動(dòng)activity的4種方式及打開其他應(yīng)用的activity的坑的相關(guān)資料,需要的朋友可以參考下2016-05-05Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07android模擬器開發(fā)和測(cè)試nfc應(yīng)用實(shí)例詳解
本文介紹android模擬器開發(fā)nfc應(yīng)用詳解,大家參考使用吧2013-12-12Android打開GPS導(dǎo)航并獲取位置信息返回null解決方案
最近在做一個(gè) Android 項(xiàng)目,需要用到GPS獲取位置信息,從 API 查了一下,發(fā)現(xiàn)獲取位置信息僅需極其簡(jiǎn)單的一句即可getLastKnownLocation(LocationManager.GPS_PROVIDER)郁悶的是一直為null,于是搜集整理下,曬出來與大家分享2013-01-01Android中ListView結(jié)合CheckBox實(shí)現(xiàn)數(shù)據(jù)批量選擇(全選、反選、全不選)
這篇文章主要介紹了Android編程中ListView結(jié)合CheckBox實(shí)現(xiàn)批量選擇,包括實(shí)現(xiàn)全選、反選、全不選等操作,感興趣的小伙伴們可以參考一下2016-01-01Android 保存Fragment 切換狀態(tài)實(shí)例代碼
本文主要介紹Android Fragment的應(yīng)用,這里給大家用實(shí)例代碼詳細(xì)介紹了Android Fragment 切換狀態(tài),有需要的小伙伴可以參考下2016-07-07