Android 裁剪图片大小 控制图片尺寸

//截取适合屏幕大小的图片            if(v==selectImageBtn){           Intent intent=new Intent(Intent.ACTION_PICK,                   android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);               startActivityForResult(intent, IMAGE_SELECT);           }//一般用于头像等需要设置指定大小            else if(v==cutImageBtn){               Intent intent=getImageClipIntent();               startActivityForResult(intent, IMAGE_CUT);           }       }          @Override       protected void onActivityResult(int requestCode, int resultCode, Intent intent) {           // TODO Auto-generated method stub            if(resultCode==RESULT_OK){               if(requestCode==IMAGE_SELECT){               Uri imageFileUri =intent.getData();               int dw=getWindowManager().getDefaultDisplay().getWidth();               int dh=getWindowManager().getDefaultDisplay().getHeight()/2;               //已屏幕宽 和一般的高作为图片显示的最大尺寸                try{                   BitmapFactory.Options factory=new BitmapFactory.Options();                   factory.inJustDecodeBounds=true//当为true时  允许查询图片不为 图片像素分配内存                    Bitmap bmp=BitmapFactory.decodeStream(getContentResolver()                           .openInputStream(imageFileUri),null,factory);                   int hRatio=(int)Math.ceil(factory.outHeight/(float)dh); //图片是高度的几倍                    int wRatio=(int)Math.ceil(factory.outWidth/(float)dw); //图片是宽度的几倍                    System.out.println("hRatio:"+hRatio+"  wRatio:"+wRatio);                   //缩小到  1/ratio的尺寸和 1/ratio^2的像素                    if(hRatio>1||wRatio>1){                       if(hRatio>wRatio){                           factory.inSampleSize=hRatio;                        }                       else                           factory.inSampleSize=wRatio;                   }                   factory.inJustDecodeBounds=false;                    bmp=BitmapFactory.decodeStream(getContentResolver()                           .openInputStream(imageFileUri),null,factory);                    imageView.setImageBitmap(bmp);               }catch(Exception ex){                                  }               }               else if(requestCode==IMAGE_CUT){                   Bitmap bmp=intent.getParcelableExtra("data");                   imageView.setImageBitmap(bmp);               }           }                  }           /**           * 获取剪切后的图片           */           public static Intent getImageClipIntent() {                  Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);               intent.setType("image/*");               intent.putExtra("crop""true");                intent.putExtra("aspectX"1);//裁剪框比例                intent.putExtra("aspectY"1);               intent.putExtra("outputX"80);//输出图片大小                intent.putExtra("outputY"80);               intent.putExtra("return-data"true);               return intent;           }                 }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfwgf.html