界面布局:一个照相按钮,一个从相册选择图片按钮,一个ImageView用来显示图片,代码和图片不再给出
1、用相机拍摄照片并显示(解释见代码注释)
mTakePhotoButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// new一个File用来存放拍摄到的照片
// 通过getExternalStorageDirectory方法获得手机系统的外部存储地址
File imageFile = new File(Environment
.getExternalStorageDirectory(), "tempImage.jpg");
// 如果存在就删了重新创建
try {
if (imageFile.exists()) {
imageFile.delete();
}
imageFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
// 将存储地址转化成uri对象
imageUri = Uri.fromFile(imageFile);
// 设置打开照相的Intent
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
// 设置相片的输出uri为刚才转化的imageUri
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
// 开启相机程序,设置requestCode为TOKE_PHOTO
startActivityForResult(intent, TAKE_PHOTO);
}
});
startActivityForResult(intent, CROP_PHOTO);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
// 从拍照界面返回
case TAKE_PHOTO:
if (resultCode == RESULT_OK) {
// 设置intent为启动裁剪程序
Intent intent = new Intent("com.android.camera.action.CROP");
//