Android 图片裁剪


     private static final int PHOTO_PICKED_WITH_DATA = 3021;
     //用于保存大图片位置的uri
     private static Uri mCropUri;
      public void setWallPaper(View v) {
          //获取图片在手机内存的地址
           File file = ImageLoader.getInstanse(this).getImageFile(picUrl);
           //给保存位置设一个位置,并转换成uri
            mCropUri = Uri.fromFile( new File(file.getParentFile(),"crop" ));
           Uri uri = Uri. fromFile(file);
           Intent intent = getCropImageIntent(uri) ;
           startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
      }

     /**
      * 裁剪图片的方法
      *
      * @param uri
      */
     public static Intent getCropImageIntent (Uri photoUri) {

          Intent intentCarema = new Intent("com.android.camera.action.CROP" );
          intentCarema.setDataAndType(photoUri, "image/*");
          intentCarema.putExtra( "crop", true);
          intentCarema.putExtra( "scale", true);
          intentCarema.putExtra(MediaStore. EXTRA_OUTPUT, mCropUri);
          intentCarema.putExtra( "outputFormat", Bitmap.CompressFormat.JPEG .toString());
       //intentCarema.putExtra("FaceDetection", true);// 人脸识别功能
      // intentCarema.putExtra("circleCrop", "");//设定此方法选定区域会是圆形区域
           // aspectX aspectY是宽高比例
          intentCarema.putExtra( "aspectX",5);
          intentCarema.putExtra( "aspectY",4);
           // outputX outputY 是裁剪图片的宽高
     /*   intentCarema.putExtra("outputX", 200);
          intentCarema.putExtra("outputY", 300);*/
          intentCarema.putExtra( "return-data", false );
           return intentCarema;
     }


     @Override
     protected void onActivityResult( int requestCode, int resultCode, Intent data) {
           switch (requestCode) {
           case PHOTO_PICKED_WITH_DATA:
              Bitmap bitmap = decodeUriAsBitmap( mCropUri);//decode bitmap
               if (bitmap != null) {
                   WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
                    try {
                        wallpaperManager.setBitmap(bitmap);
                        Toast. makeText(this, "壁纸设置成功", Toast. LENGTH_LONG).show();
                   } catch (IOException e) {
                        e.printStackTrace();
                   }
              }
          }
     }














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值