1. ホーム
  2. android

[解決済み] ギャラリーまたはカメラからの画像を選択するダイアログ

2022-05-26 21:31:37

質問

カメラから画像を選ぶか、ギャラリーから取得するかを選択するダイアログボックスを呼び出す標準的な方法はありますか (ビルドインの電話帳やSkypeのように)。

私は、以下のものを見てみました。 この を見てみましたが、このコードはカメラからの選択を示唆することなくギャラリーを開いてしまいます。

デバイス Samsung ギャラクシー タブ

アンドロイド: 2.3.3

どのように解決するのですか?

以下のコードは、写真を撮るときにも、写真を選ぶときにも使うことができます。2つの選択肢を持つダイアログを表示し、選択時に適切なコードを使用するだけです。

カメラから写真を撮る。

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);//zero can be replaced with any action code (called requestCode)

ギャラリーから写真を選ぶ。

Intent pickPhoto = new Intent(Intent.ACTION_PICK,
           android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickPhoto , 1);//one can be replaced with any action code

onActivityResult のようなコードになります。

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
    switch(requestCode) {
    case 0:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            imageview.setImageURI(selectedImage);
        }

    break; 
    case 1:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            imageview.setImageURI(selectedImage);
        }
    break;
    }
}

最後にマニフェストファイルにこのパーミッションを追加します。

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />