在APP中选择图像后,可能需要裁剪头像等。
以下是启动代码。
在我的项目中,有filePath,所以我试着转了一下,但是实际上从相册中选择了图像后,可以在data.getData ()中获取uri。 uriuri=uri.fromfile(newfile )文件路径);
intent intent=new intent (com.Android.camera.action.crop );
intent.setDataAndType (,' image/* ';
intent.putextra('crop ',' true ' ); //可裁剪
intent.putextra(AspectX ),10 ); //高比例
intent.putextra(Aspecty ),10 ); //宽比例
intent.putextra('outputx ',size ); //宽度尺寸
intent.putextra('outputy ',size ); //高尺寸
intent.putextra('scale ',true ); //保持比率
intent.putextra('return-data ',true ); //修剪后,是否返回Bitmap
intent.put extra (mediastore.extra _ output,uri;
intent.putextra('outputformat ',bitmap.compress format.JPEG.tostring ) ); 输出JPEG
intent.put extra (' no face detection ',false ); //脸部识别,打开后,检测到脸部后,将裁剪框移动到人脸上
activity.startactivityforresult (英特尔,123456 ); //开始
以下是修剪后的处理。 @Override
publicvoidonactivityresult (intrequestcode,int resultCode,Intent data ) {
if (请求代码==123456 result代码==result _ ok ) {
//在修剪用户头像后
Bitmap bitmap=data.getExtras ().getparcelable('data );
//演示文稿保存在缓存中
//目录
stringcachedirectorypath=get cachedir ().getPath );
filedir=new file (cachedirectorypath;
if (! dir.exists () }
dir.mkdirs (; //如果目录不存在则创建
}
//文件保存
string file path=cachedirectorypathfile.separator ' cutted.jpg ';
文件文件=new file (文件路径;
try {
fileoutputstreamfos=new file output stream (文件;
用//io流压缩和存储图像
BMP.com press (bitmap.compress format.JPEG,60,fos );
fos.flush (;
fos.close (;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
}
}
注意:由于“Android”混乱,当您开始修剪时,某些手机会报告活动不基础异常。