【发布时间】:2011-10-15 15:19:10
【问题描述】:
我正在开发一个应用程序,用户可以在该应用程序中选择文件,可以是来自相机的新图像、来自图库的图像,也可以是普通的旧文件。然后它会显示一个图标和所选项目的名称。我有一个例外。图库应用程序集成了 picasaweb 图片。如果用户从 picasa 相册中选择了一张图片,我无法获得它的缩略图。
我正在使用 MediaStore.Images.Thumbnails.getThumbnail() 方法,它适用于图库中的其他图像,但对于 picasaweb 文件,无论我尝试什么“类型”的缩略图,我都会得到得到(虽然 MICRO 是我所追求的):
ERROR/MiniThumbFile(2051): 读取魔法时出现异常,id = 5634890756050069570,磁盘已满还是以只读方式挂载?班级 java.lang.IllegalArgumentException
我注意到为所选文件提供的 URI 不同。本地图像文件如下所示:
content://media/external/images/media/6912
picasaweb 网址看起来像:
content://com.android.gallery3d.provider/picasa/item/5634890756050069570
我尝试使用查询来获取原始 THUMB_DATA,使用 Thumbnails.queryMiniThumbnails(),在投影数组中使用 Thumbnails.THUMB_DATA,但出现“没有这样的列”错误。
还有其他更好的获取缩略图的方法吗?当我尝试访问完整的图像数据时会遇到同样的问题吗?
【问题讨论】:
-
我可以轻松确定 URI 中的差异,如果图像来自 picasa,则显示 Toast,但这并不完全理想。更好但仍然不完美的方法是从 ACTION_PICK 中排除 picasa 图像,但我也不知道该怎么做。
-
我在 Android 错误跟踪器中为此创建了一个问题。 code.google.com/p/android/issues/…
标签: android android-gallery android-image