使用Java代码在Android中实现图片裁剪功能
前言
Android应用中经常会遇到上传相册图片的需求,这里记录一下如何进行相册图片的选取和裁剪。
相册选取图片
1.激活相册或是文件管理器,来获取相片,代码如下:
privatestaticfinalintTAKE_PICTURE_FROM_ALBUM=1;
privatevoidtakePictureFromAlbum(){
Intentintent=newIntent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent,TAKE_PICTURE_FROM_ALBUM);
}
2.通过startAcitivityForResult()方法,我们可以在onAcitivityResult()中来获取图片的URI,然后将图片的URI传递给图片裁剪函数,代码如下:
@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
if(resultCode==Activity.RESULT_OK){
switch(requestCode){
caseTAKE_PICTURE_FROM_ALBUM:
if(data!=null){
cropPictureFromAlbum(data.getData());
}
break;
casePICTURE_CROP_CODE:
if(data!=null){
//这是裁剪后图片的bitmap
Bitmapbitmap=data.getParcelableExtra("data");
}
break;
default:
break;
}
}
}
privatestaticfinalintTAKE_PICTURE_FROM_ALBUM=1;
privatevoidtakePictureFromAlbum(){
Intentintent=newIntent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent,TAKE_PICTURE_FROM_ALBUM);
}
privatestaticfinalintPICTURE_CROP_CODE=2;
privatevoidcropPictureFromAlbum(UripictureUri){
Intentintent=newIntent("com.android.camera.action.CROP");
intent.setDataAndType(pictureUri,"image/*");
intent.putExtra("crop","true");
//裁剪框比例
intent.putExtra("aspectX",1);
intent.putExtra("aspectY",2);
//裁剪后输入图片的尺寸大小
intent.putExtra("outputX",300);
intent.putExtra("outputY",300);
//取消人脸识别
intent.putExtra("noFaceDetection",true);
intent.putExtra("return-data",true);
startActivityForResult(intent,PICTURE_CROP_CODE);
}
3.在onActivityResult里,通过data.getParcelableExtra("data")可以获取图片裁剪之后的bitmap,之后就可以将bitmap赋值给图片控件了。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下