聊天平台源码,通过MediaStore获取缩略图模糊
聊天平台源码,通过MediaStore获取缩略图模糊实现的方法
获取缩略图的方法
1 | Bitmap thumbnail = Images.Thumbnails.getThumbnail(mContext.getContentResolver(), id, Images.Thumbnails.MICRO_KIND, null ) |
该方法为系统方法getThumbnail
1 | /**<br> * Return thumbnail representing a specific image item. If a<br> * thumbnail doesn't exist, this method will block until it's<br> * generated. Callers are responsible for their own in-memory<br> * caching of returned values.<br> *<br> * As of {@link android.os.Build.VERSION_CODES#Q}, this output<br> * of the thumbnail has correct rotation, don't need to rotate<br> * it again.<br> *<br> * @param imageId the image item to obtain a thumbnail for.<br> * @param kind optimal thumbnail size desired.<br> * @return decoded thumbnail, or {@code null} if problem was<br> * encountered.<br> * @deprecated Callers should migrate to using<br> * {@link ContentResolver#loadThumbnail}, since it<br> * offers richer control over requested thumbnail sizes<br> * and cancellation behavior.<br> */ <br> @Deprecated <br> public static Bitmap getThumbnail(ContentResolver cr, long imageId, int kind,<br> BitmapFactory.Options options) {<br> final Uri uri = ContentUris.withAppendedId(<br> Images.Media.EXTERNAL_CONTENT_URI, imageId);<br> return InternalThumbnails.getThumbnail(cr, uri, kind, options);<br>} |
观察到参数@param kind optimal thumbnail size desired
1 | packages/providers/MediaProvider/apex/framework/java/android/provider/MediaStore.java<br> public static class ThumbnailConstants {<br> public static final int MINI_KIND = 1 ;<br> public static final int FULL_SCREEN_KIND = 2 ;<br> public static final int MICRO_KIND = 3 ;<br> public static final Size MINI_SIZE = new Size( 512 , 384 );<br> public static final Size FULL_SCREEN_SIZE = new Size( 1024 , 786 );<br> public static final Size MICRO_SIZE = new Size( 96 , 96 );<br> public static @NonNull Size getKindSize( int kind) {<br> if (kind == ThumbnailConstants.MICRO_KIND) {<br> return ThumbnailConstants.MICRO_SIZE;<br> } else if (kind == ThumbnailConstants.FULL_SCREEN_KIND) {<br> return ThumbnailConstants.FULL_SCREEN_SIZE;<br> } else if (kind == ThumbnailConstants.MINI_KIND) {<br> return ThumbnailConstants.MINI_SIZE;<br> } else {<br> throw new IllegalArgumentException( "Unsupported kind: " + <br> }<br> }<br>} |
因此,如要修改缩略图清晰度,可以修改第三个参数为MINI_KIND或FULL_SCREEN_KIND即可。
以上就是聊天平台源码,通过MediaStore获取缩略图模糊实现的方法, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现