Android MediaStore 插入图像 已创建附加文件
我使用以下代码片段在 MediaStore 缓存中插入图像:
MediaStore.Images.Media.insertImage(getContentResolver(), selectedFile.getParent() + file.separator + selectedFile.getName(), selectedFile.getName( ),无效的);
插入正常,但它还会在同一路径创建另一个图像缩略图。这在图库中不可见,但当使用文件浏览器浏览时,该图像缩略图可见。如何停止在此处创建此图像缩略图,以免混淆用户。
I am inserting an Image in the MediaStore cache using the following code snippet:
MediaStore.Images.Media.insertImage(getContentResolver(), selectedFile.getParent() + file.separator + selectedFile.getName(), selectedFile.getName(),null);
The insertion is ok but it also creates another image thumbnail at the same path. This is not visible in the gallery but when browsed using file browser this image thumbnail is visible. How can I stop this image thumbnail to be created here so as not to confuse the user.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MediaStore.Images.Media.insertImage() 的文档说:
您实际需要做的是访问媒体扫描仪服务。
该服务默认在启动期间或插入 SD 卡后运行。您可以使用意图强制它运行,但最终会重新扫描整个 SD 卡以查找单个意图。
当然,还有更好的解决方案:
如果您正在针对 API 级别 8 或更高级别 (Android 2.2) 进行开发,请使用
来自
MediaScannerConnection
的scanFile
静态函数,已记录 此处。对于 API 7 或更低版本,它有点复杂,但您可以将所有内容与以下文章中最好解释的包装器放在一起:
动态添加图片到图库小部件
The documentation for
MediaStore.Images.Media.insertImage()
says that it:What you actually need to do is to access the Media Scanner Service.
The service runs by default during startup or after inserting the SD card. You can force it to run using intents but you end up rescanning the entire SD card for a single.
There is, of course, a better solution:
If you're developing for API level 8 or higher (Android 2.2), use the
scanFile
static function fromMediaScannerConnection
, documented here.For API 7 or lower, it's a bit more complicated but you can put everything together with a wrapper best explained in the following post:
dynamically add pictures to gallery widget