Android写真取得画像URIが空の処理方法
5163 ワード
文章を読んで、どうせ最近カメラにやられて少し気が狂っている.Android写真取得画像URIが空の処理方法Android_カメラカメラカメラ_呼び出しシステムカメラ戻りdataが空です
写真の撮り方:
onActivity Resultメソッドで受信します.
裁断の仕方.
onActivity Resultメソッドで受信します.
終わります.
写真の撮り方:
public void takePhoto() {
destoryBimap();
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
// uri , uri,data , uri, data
// intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, PHOTO_WITH_CAMERA);
} else {
Toast.makeText(getActivity(), " SD ", Toast.LENGTH_LONG).show();
}
}
onActivity Resultメソッドで受信します.
Bundle bundle =data.getExtras();
// , Bitmap
aphoto = (Bitmap)bundle.get("data");
if (data.getData()!=null){
imageUri =data.getData();
}else {
imageUri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), aphoto, null,null));
}
//
copePhoto(imageUri);
裁断の仕方.
public void copePhoto(Uri uri){
destoryBimap();
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent intent = new Intent();
intent.setAction("com.android.camera.action.CROP");
intent.setDataAndType(uri,"image/*");
intent.putExtra("cope","true");
intent.putExtra("aspectX", 1);//
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 200);//
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent,PHOTO_COPE);
} else {
Toast.makeText(getActivity(), " SD ", Toast.LENGTH_LONG).show();
}
}
onActivity Resultメソッドで受信します.
Bundle bundle = data.getExtras();
photo = bundle.getParcelable("data");
終わります.