Androidでカメラで撮影した画像のUri +サムネイルを取得する
build-in Androidカメラで作成した画像でImageViewを更新したいと思います。 私は次のコードを使用します:
void getPhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);
}
その後、私は写真を取得します:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PICTURE) {
Bitmap photo = (Bitmap) data.getExtras().get(“data”);
ImageView photoView = (ImageView) findViewById(R.id.photoId);
photoView.setImageBitmap(photo);
}
}
しかし、このコードでは、私が作った写真のサムネイルだけを取得します。私の質問は、サムネイルではなく元の画像で動作するように写真のUriを取得するにはどうすればいいですか?
PS。私は実際に写真のサムネイルが必要ですが、私は元の写真のUriも必要です。
私は自分のURIを保存する場所を伝える意図に入れて、それがどこにあるかを知っています。 ファイルのいくつかのフィールドを作成します。
private String imagePath = “/sdcard/Camera/test.jpg”;
private File originalFile;
ファイルを初期化します。
originalFile = new File(imagePath);
URIを余分に渡して、インテントでカメラアプリを起動します。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri outputFileUri = Uri.fromFile(originalFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, RESULT_CAPTURE_IMAGE);
onActivityResult()でURIを抽出します。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RESULT_CAPTURE_IMAGE && resultCode == Activity.RESULT_OK) {
mBitmap = BitmapFactory.decodeFile(originalImagePath, BitmapFactoryOptions); //set whatever bitmap options you need.
createBitmapを使用してビットマップを作成するか、必要なものにファイルパスを使用できるようになりました
source