日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android --- 调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题

發布時間:2025/3/21 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android --- 调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發中我們有時候需要將app中的圖片導出到相冊,調用系統提供的

MediaStore.Images.Media.insertImage

方法可以達到我們的目的,但是會發現在相冊中生成了兩張內容一樣的圖片,一張是以我們設置的命名方式命名的(具體步驟可以查看insertImage用法),另一張則是系統幫我們生成的根據當前時間命名的縮略圖。
查看insertImage的源碼,我們發現保存圖片其實是通過以下代碼做到的:

ContentValues values = new ContentValues();values.put(MediaStore.Images.Media.DATA, file_export.getAbsolutePath());values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");Uri uri = context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

后面的代碼則是生成縮略圖用的,那么我們在使用的時候剝離出這部分我們需要的代碼即可,也就是在原來使用

MediaStore.Images.Media.insertImage(getContext().getContentResolver(),path_export, file_export.getName(), file_export.getName());

的地方,使用以下代碼替換它就行了:

ContentValues values = new ContentValues();values.put(MediaStore.Images.Media.DATA, file_export.getAbsolutePath());values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");Uri uri = this.getContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

當然,最后別忘了發送廣播提醒系統檢索我們導出的圖片,否則不會顯示:

getContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path_export)));//path_export是你導出的文件路徑

總結

以上是生活随笔為你收集整理的Android --- 调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。