安卓获取图片缩略图的两种方式
2015-04-08 09:01
351 查看
1、
2、手动以指定的宽高获取
缺点:比较耗时
/** * 通过内容提供器来获取图片缩略图 缺点:必须更新媒体库才能看到最新的缩略图 * @param context * @param cr * @param Imagepath * @return */ public static Bitmap getImageThumbnail(Context context, ContentResolver cr, String Imagepath) { ContentResolver testcr = context.getContentResolver(); String[] projection = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, }; String whereClause = MediaStore.Images.Media.DATA + " = '" + Imagepath + "'"; Cursor cursor = testcr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, whereClause,null, null); int _id = 0; String imagePath = ""; if (cursor == null || cursor.getCount() == 0) { return null; }else if (cursor.moveToFirst()) { int _idColumn = cursor.getColumnIndex(MediaStore.Images.Media._ID); int _dataColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATA); do { _id = cursor.getInt(_idColumn); imagePath = cursor.getString(_dataColumn); } while (cursor.moveToNext()); } cursor.close(); BitmapFactory.Options options = new BitmapFactory.Options(); options.inDither = false; options.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MINI_KIND,options); return bitmap; }
2、手动以指定的宽高获取
缺点:比较耗时
private void getImageThumbnail(String imagePath,int width,int height) { Bitmap img_bitmap = null; //节约内存 options.inPreferredConfig = Bitmap.Config.ARGB_4444;/*设置让解码器以最佳方式解码*/ options.inPurgeable = true; options.inInputShareable = true; options.inJustDecodeBounds = true; //If diTher is true, the decoder will attempt to dither the decoded image options.inDither = false;//不进行图片抖动处理 // 获取这个图片的宽和高,注意此处的bitmap为null img_bitmap = BitmapFactory.decodeFile(params[0], options); options.inJustDecodeBounds = false;//设为 false //计算缩放比 int h = options.outHeight; int w = options.outWidth; int beWidth = w / width; int beHeight = h / height; int be = 1; if (beWidth < beHeight) { be = beWidth; } else { be = beHeight; } if (be <= 0) { be = 1; } options.inSampleSize = be; // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false img_bitmap = BitmapFactory.decodeFile(params[0], options); // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象 img_bitmap = ThumbnailUtils.extractThumbnail(img_bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT); return img_bitmap; }
相关文章推荐
- 安卓获取图片缩略图的两种方式
- jfreechart获取图片的两种方式
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(一)
- java 实现BufferedImage和ImageReader两种方式获取图片宽高、判断图片类型、获取图片大小工具类代码以及测试响应结果
- 从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
- 安卓图片处理全解:获取视频的缩略图
- Android根据图片文件名获取它的资源ID 的两种方式
- [Android]获取拍照完的图片的数据两种方式
- Android根据图片文件名获取它的资源ID 的两种方式
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(三)
- php获取远程图片的两种:CURL方式和sockets方式获取远程图片
- Android之从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
- 安卓-获取图片/视频的缩略图
- 程序员带你学习安卓开发-两种显示互联网上的图片的方式 及动画
- Ajax获取图片的两种方式
- 安卓网络编程-通过GET方式获取网络图片
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(四)
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(二)
- 获取远程文章内容时,显示图片的两种方式