概述
1、首先定义常量
//先定义常量
private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择
private static final int PHOTO_REQUEST_CUT = 3;// 结果
2、这里是button的点击事件
//button 点击事件
xc_but.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 激活系统图库,选择一张图片
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY
startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
}
});
/*
*获取返回数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PHOTO_REQUEST_GALLERY) {
// 从相册返回的数据
if (data != null) {
// 得到图片的全路径
Uri uri = data.getData();
crop(uri);
}
} else if (requestCode == PHOTO_REQUEST_CUT) {
// 从剪切图片返回的数据
if (data != null) {
bitmap = data.getParcelableExtra("data");
imgv.setImageBitmap(bitmap);
}
}
}
/*
* 剪切图片
*/
private void crop(Uri uri) {
// 看到有人问裁剪的路径
// 获取系统时间 然后将裁剪后的图片保存至指定的文件夹
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
String address = sDateFormat.format(new java.util.Date());
Uri imageUri = Uri.parse("aaaaa/" + address + ".JPEG");
// 裁剪图片意图
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
// 裁剪框的比例,1:1
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// 裁剪后输出图片的尺寸大小
intent.putExtra("outputX", 486);//这里要注意适配或根据需求更改,不然会报错
intent.putExtra("outputY", 486);//这里要注意适配或根据需求更改,不然会报错
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);// 输出路径
intent.putExtra("outputFormat", "JPEG");// 图片格式
intent.putExtra("noFaceDetection", false);// 取消人脸识别 true 取消, false 不取消
intent.putExtra("return-data", true);
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT
startActivityForResult(intent, PHOTO_REQUEST_CUT);
}
这里有一部分查看了其他博客,但是忘了是谁的了,不好意思了。
最后
以上就是忐忑百合为你收集整理的Android 获取相册图片,裁剪的全部内容,希望文章能够帮你解决Android 获取相册图片,裁剪所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复