bitmap 压缩图片

  1. BitmapFactory.Optionsopt=newBitmapFactory.Options();
  2. //这个isjustdecodebounds很重要
  3. opt.inJustDecodeBounds=true;
  4. bm=BitmapFactory.decodeFile(absolutePath,opt);
  5. //获取到这个图片的原始宽度和高度
  6. intpicWidth=opt.outWidth;
  7. intpicHeight=opt.outHeight;
  8. //获取屏的宽度和高度
  9. WindowManagerwindowManager=getWindowManager();
  10. Displaydisplay=windowManager.getDefaultDisplay();
  11. intscreenWidth=display.getWidth();
  12. intscreenHeight=display.getHeight();
  13. //isSampleSize是表示对图片的缩放程度,比如值为2图片的宽度和高度都变为以前的1/2
  14. opt.inSampleSize=1;
  15. //根据屏的大小和图片大小计算出缩放比例
  16. if(picWidth>picHeight){
  17. if(picWidth>screenWidth)
  18. opt.inSampleSize=picWidth/screenWidth;
  19. }
  20. else{
  21. if(picHeight>screenHeight)
  22. opt.inSampleSize=picHeight/screenHeight;
  23. }
  24. //这次再真正地生成一个有像素的,经过缩放了的bitmap
  25. opt.inJustDecodeBounds=false;
  26. bm=BitmapFactory.decodeFile(absolutePath,opt);
  27. //用imageview显示出bitmap
  28. iv.setImageBitmap(bm);

你可能感兴趣的:(bitmap)