Android加载缩略图的几种方法
2016-02-05 13:14
375 查看
转载请注明出处:/article/10113229.html
最近一段时间做图片缩略图的加载,发现网上的信息杂乱无章,掺杂着许多无效信息,浪费许多时间,经过大量的搜索与实践,整理出来一些能正常使用的方法。
PS:系统不会自动生成缩略图
2、
ThumbnailUtils.createVideoThumbnail(filePath, kind);
Picasso:使用较为简单,仅需一句代码便能实现功能。图片质量较高,库的体积小。但不能加载视频缩略图。内存开销大于Glide。
Glide:使用与Picasso类似,图片加载速度较快,可以加载视频缩略图,可以加载gif动图,功能较多。是google推荐的图片加载框架。但库的体积大,占用缓存大于Picasso,图片质量差。
最近一段时间做图片缩略图的加载,发现网上的信息杂乱无章,掺杂着许多无效信息,浪费许多时间,经过大量的搜索与实践,整理出来一些能正常使用的方法。
通过MediaStore获取缩略图
Cursor cursor2 = MediaStore.Images.Thumbnails.query(// 查询数据库中所有缩略图 mActivity.getContentResolver(), MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, STORE_THUMB_IMAGES);
PS:系统不会自动生成缩略图
如何让系统生成缩略图(没有找到明确的官方说明,但测试可用)
1、android.provider.MediaStore.Images.Thumbnails. getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options)
2、
MediaScannerConnection.scanFile(context, paths, mimeTypes, callback);
BitmapFactory创建缩略图
BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeFile(path, options); float realWidth = options.outWidth; float realHeight = options.outHeight; int scale = (int) ((realHeight > realWidth ? realHeight : realWidth) / 100); options.inSampleSize = scale; options.inJustDecodeBounds = false; bitmap = BitmapFactory.decodeFile(path, options);
ThumbnailUtils加载缩略图
ThumbnailUtils.extractThumbnail(source, width, height) //source为BitmapThumbnailUtils.createVideoThumbnail(filePath, kind);
采用框架加载缩略图
Universal-Image-Loader:资历比较老,使用较为广泛。有比较多的参数可以配置,对图片压缩实在无力。Picasso:使用较为简单,仅需一句代码便能实现功能。图片质量较高,库的体积小。但不能加载视频缩略图。内存开销大于Glide。
Glide:使用与Picasso类似,图片加载速度较快,可以加载视频缩略图,可以加载gif动图,功能较多。是google推荐的图片加载框架。但库的体积大,占用缓存大于Picasso,图片质量差。
音乐缩略图加载路径
String uri = "content://media/external/audio/media/" + id + "/albumart";
相关文章推荐
- Android手机之间通过声音传输信息方法——声波通信(含project代码)
- Android 第九天(下午)
- Android 开发体系图
- Android 带password输入界面的Dialog实现机制
- Andorid 加速度传感器的使用
- Android CountDownTimer类的使用
- Android Error —— 自定义控件FindViewById() 返回 Null
- 阅读《Android 从入门到精通》(24)——切换图片
- Android 第九天(上午)
- Android开发之删除项目缓存的方法
- android支持多分辨率屏幕
- Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法
- 上手Android Studio
- Android编程实现改变控件背景及形态的方法
- 21天学习android开发教程之SurfaceView与多线程的混搭
- Android实现推送方式解决方案
- Android实现沉浸式通知栏通知栏背景颜色跟随app导航栏背景颜色而改变
- Android编程实现动态更新ListView的方法
- Android的历史版本
- Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)