- BitmapFactory.Options opt = new BitmapFactory.Options();
- //这个isjustdecodebounds很重要
- opt.inJustDecodeBounds = true;
- bm = BitmapFactory.decodeFile(absolutePath, opt);
- //获取到这个图片的原始宽度和高度
- int picWidth = opt.outWidth;
- int picHeight = opt.outHeight;
- //获取屏的宽度和高度
- WindowManager windowManager = getWindowManager();
- Display display = windowManager.getDefaultDisplay();
- int screenWidth = display.getWidth();
- int screenHeight = display.getHeight();
- //isSampleSize是表示对图片的缩放程度,比如值为2图片的宽度和高度都变为以前的1/2
- opt.inSampleSize = 1;
- //根据屏的大小和图片大小计算出缩放比例
- if(picWidth > picHeight){
- if(picWidth > screenWidth)
- opt.inSampleSize = picWidth/screenWidth;
- }
- else{
- if(picHeight > screenHeight)
- opt.inSampleSize = picHeight/screenHeight;
- }
- //这次再真正地生成一个有像素的,经过缩放了的bitmap
- opt.inJustDecodeBounds = false;
- bm = BitmapFactory.decodeFile(absolutePath, opt);
- //用imageview显示出bitmap
- iv.setImageBitmap(bm);
bitmap 压缩图片
最新推荐文章于 2023-07-05 17:23:14 发布