在應(yīng)用程序中,用戶查看照片時(shí)通常需要存儲(chǔ)圖片的功能。在應(yīng)用程序中將喜歡的照片保存在手機(jī)系統(tǒng)相冊(cè)中。

Android系統(tǒng)提供了對(duì)應(yīng)的API來(lái)實(shí)現(xiàn)這個(gè)功能:(注意:由于頭條號(hào)對(duì)于代碼的展示支持限制,為了更好地閱讀,這里以圖片形式展示代碼,需要查看代碼的請(qǐng)移至作者CSDN地址:)

通過(guò)上述代碼便能將Bitmap對(duì)象保存到系統(tǒng)相冊(cè)的圖片中,但是有兩點(diǎn)需要注意:

第一點(diǎn):

雖然系統(tǒng)提供的兩個(gè)API:

或者

提供了title和description參數(shù),我們依舊不能指定保存到相冊(cè)中圖片的名字,系統(tǒng)會(huì)默認(rèn)使用當(dāng)前時(shí)間的毫秒數(shù)作為圖片名。

第二點(diǎn):

保存完圖片后,可以在內(nèi)存設(shè)備的文件系統(tǒng)相冊(cè)目錄下看到對(duì)應(yīng)圖片(以小米手機(jī)為例,系統(tǒng)相冊(cè)的路徑為:/storage/emulated/0/DCIM/Camera)。但是,使用系統(tǒng)圖庫(kù)無(wú)法馬上看到該圖片,需要重啟手機(jī)才能看到,因?yàn)楸4鎴D片后沒(méi)有更新圖庫(kù)的緣故??梢栽诒4鎴D片后使用如下解決方案:

解決方案一:發(fā)送掃描廣播(過(guò)時(shí))

上面那條廣播是掃描整個(gè)sd卡的廣播,如果你sd卡里面東西很多會(huì)掃描很久,在掃描當(dāng)中我們是不能訪問(wèn)sd卡,所以這樣子用戶體現(xiàn)很不好,用過(guò)微信的朋友都知道,微信保存圖片到系統(tǒng)相冊(cè)并沒(méi)有掃描整個(gè)SD卡,所以我們用到下面的方法:

請(qǐng)注意,在第一種方案后面我標(biāo)記了“過(guò)時(shí)”,因?yàn)榘l(fā)送這條掃描廣播,需要android.in系統(tǒng)權(quán)限,但是再Android 4.4系統(tǒng)以后,限制了只有系統(tǒng)應(yīng)用才有使用廣播通知系統(tǒng)掃描的權(quán)限,否則會(huì)拋出異常信息:

Permission Denial: not allowed to send broadcast android.in

所有有了第二種解決方案。

解決方案二:使用MediaScannerConnection

然后調(diào)用m()方法掃描即可!

其中,圖片的路徑是根據(jù)調(diào)用insertImage時(shí)返回Uri字符串轉(zhuǎn)換而來(lái)的,通過(guò)Uri.parse(String uriString)方法獲取Uri對(duì)象,然后通過(guò)如下方法獲取圖片在相冊(cè)中的文件路徑:

1.《app中的圖片怎么保存在哪里?我來(lái)告訴你答案Android 保存應(yīng)用中的圖片到系統(tǒng)相冊(cè)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。

2.《app中的圖片怎么保存在哪里?我來(lái)告訴你答案Android 保存應(yīng)用中的圖片到系統(tǒng)相冊(cè)》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/gl/2931256.html