Android 圖片存儲到指定路徑和相冊的方法
我們在平常項目中,可能會存儲一些頭像,二維碼之類的。這篇文章主要也是介紹自己在存儲中會遇到的問題以及一些改進方案。
1.首先是長按保存:這個可以去參照網絡上的,無非是自己先要拼接好一個文件路徑。注意:IO流只能幫忙建文件,但是不能幫忙建目錄(路徑)。
// 先拼接好一個路徑:在內存卡/或是手機內存上做好文件夾
String filePath = Environment.getExternalStorageDirectory()+savePath;
File localFile = new File(filePath);
if (!localFile.exists()) {
localFile.mkdir();
}
2.引導具體的文件名和路徑:
//拼接好文件路徑和名稱
File finalImageFile = new File(localFile, System.currentTimeMillis() + ".jpg");
if (finalImageFile.exists()) {
finalImageFile.delete();
}
try {
finalImageFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
3.文件的讀?。?/p>
FileOutputStream fos = null;
try {
fos = new FileOutputStream(finalImageFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (bitmap == null) {
Toast.makeText(this, "圖片不存在", 0).show();
return;
}
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
try {
fos.flush();
fos.close();
Toast.makeText(this, "圖片保存在:"+ finalImageFile.getAbsolutePath(), 0).show();
} catch (IOException e) {
e.printStackTrace();
}
4.對于圖片,我們也希望存儲在固定路徑之后,希望也可以在相冊中查看該圖片。這是可以利用一個廣播告訴相冊有圖片更新。
//發(fā)廣播告訴相冊有圖片需要更新,這樣可以在圖冊下看到保存的圖片了
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(finalImageFile);
intent.setData(uri);
sendBroadcast(intent);
通過以上步驟: 我們可以在指定路徑的文件夾和相冊中查看存儲好的圖片了。
效果如下所示:

5.另外,雖然有吐司提示用戶存儲路徑,但是也會找不到。其實,在用真機測試(不帶SD卡),圖片存儲在手機自帶內存==》ememed ==》圖片所在。
6.存儲SD卡,這類操作往往需要權限。所以,不要忘記在AndroidManifest中配置權限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_OWNER_DATA" />
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
android使用SwipeRefreshLayout實現ListView下拉刷新上拉加載
這篇文章主要為大家詳細介紹了android使用SwipeRefreshLayout實現ListView下拉刷新上拉加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12
去掉RecycleView或者ListView上下滑動陰影的方法
下面小編就為大家分享一篇去掉RecycleView或者ListView上下滑動陰影的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01

