Android:根据原始图像的 Uri 获取 SD 卡上图像的缩略图
所以我有一个图像的 Uri,用户从他的 SD 卡上的图像中选择。我想显示该图像的缩略图,因为显然该图像可能很大并占据整个屏幕。有人知道怎么做吗?
So i've got a Uri of an image the user chooses out of images off his SD card. And i'd like to display a thumbnail of that image, because obviously, the image could be huge and take up the whole screen. Anyone know how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用 Java 的 ThumnailUtil 类简单地创建缩略图视频和图像
在 API 级别 8 中添加
为视频创建视频缩略图。如果视频损坏或格式不受支持,可能会返回 null。
参数
filePath 视频文件路径
kind 可以是 MINI_KIND 或 MICRO_KIND
了解 Thumbnail Util 类的更多源代码
Developer.android.com
You can simply create thumbnail video and image using ThumnailUtil class of java
Added in API level 8
Create a video thumbnail for a video. May return null if the video is corrupt or the format is not supported.
Parameters
filePath the path of video file
kind could be MINI_KIND or MICRO_KIND
For more Source code of Thumbnail Util class
Developer.android.com
此代码将完成这项工作:
您可能需要计算最接近的 2 的幂以用于
inSampleSize
,因为 据说更快。This code will do the job:
You may want to calculate the nearest power of 2 to use for
inSampleSize
, because it's said to be faster.我相信这段代码是从 SD 卡上的文件生成缩略图的最快方法:
I believe this code is fastest way to generate thumbnail from file on SD card:
尝试了几次后,我无法从 SD 中获取图像的缩略图路径。
在我在 gridview 适配器中(或您需要的地方)创建图像视图之前,我解决了获取 android 图像位图的问题。所以我调用方法
imageView.setImageBitmap(someMethod(Context context, imageID))
您可以使用本指南从 SD 获取图像 ID (获取 Android 上的照片库列表)
A few trying I could not get the thumbnail path of image from SD.
i am resolved this problem getting an android image bitmap, before I create an image view in adapter for gridview (or where you need). So i call method
imageView.setImageBitmap(someMethod(Context context, imageID))
You can get image ID from your SD using this guide (Get list of photo galleries on Android)
如果您喜欢 HQ 缩略图,请使用 [RapidDecoder][1] 库。很简单:
如果您想缩小小于 50% 并获得 HQ 结果,请不要忘记使用内置解码器。
我在 API 级别 8 中测试了它:)
If you like HQ thumbnails, so use [RapidDecoder][1] library. It is simple as follow:
Don't forget to use builtin decoder if you want to scale down less than 50% and a HQ result.
I tested it in API Level 8 :)
该包将允许您访问图像 URI 以接收图像大小、大位图数据、将图像采样到任何较小的大小以节省内存并最大限度地提高性能。
它使用 InputStream 和 BitmapFactory:
针对不同用例的四个函数:
This package will let you access image URI to receive image size, large Bitmap data, sampling image to any smaller size for saving memory and maximize performance.
It uses InputStream and BitmapFactory:
Four functions for different use case: