我正在处理用户可以选择文件的应用程序,可以是来自相机的新图像,也可以是图库中的图像或普通的旧文件。然后它会显示一个图标和所选项目的名称。我有一个例外工作。画廊应用程序集成了picasaweb图片。如果用户从Picasa相册中选择了一张图片,我无法获取它的缩略图。如何获取从图库中选择的Picasa图像的缩略图?
我使用的是MediaStore.Images.Thumbnails.getThumbnail()方法,它适用于图库中的其他图像,但对于picasaweb文件,我会得到,不管什么样的缩略图I尝试获取(虽然MICRO是我后):
ERROR/MiniThumbFile(2051):GOT例外阅读魔,ID = 5634890756050069570,当磁盘已满或安装只读? class java.lang.IllegalArgumentException
我注意到给出的URI对于选定的文件是不同的。本地图像文件看起来像:
内容://媒体/外部/图像/媒体/ 6912
和Picasa网络相册的URL看起来像:
内容:// COM .android.gallery3d.provider/Picasa中/项目/ 5634890756050069570
我试图使用查询来获得在原始THUMB_DATA,使用Thumbnails.queryMiniThumbnails() ,在投影数组中有Thumbnails.THUMB_DATA,但我得到了“没有这样的列”的错误。
是否有另一种方法可以使缩略图更好地工作?当我尝试访问完整图像数据时,是否会遇到同样的问题?
我可以很容易地确定URI中的差异,并显示吐司如果拍摄的图像从Picasa ,但这并不完全理想。更好但仍不完美的方法是从ACTION_PICK中排除Picasa图像,但我无法看到如何做到这一点。 – Mark
我在Android bug跟踪器中为此创建了一个问题。 http://code.google.com/p/android/issues/detail?id=21234&q=picasa&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars – Mark