【Android】Intentを使ってカメラを起動する方法

今回は、タイトルにもある通り、Androidアプリでカメラを起動する方法についてです。
なお、カメラの起動には、画面遷移の際に用いられる、Intent を利用します。

参考にさせていただいたサイトはこちらから。

Take photos|Android Developers
https://developer.android.com/training/camera/photobasics

 

さて、カメラを起動する機能の実装方法ですが、必要なコードは実は下記の2行くらいで済みます。

static final int REQUEST_IMAGE_CAPTURE = 1;

// カメラを起動
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);

あとは、AndroidManifest.xmlタグ内に、下記を指定します。

<uses-feature android:name="android.hardware.camera" android:required="true" />

こちらはカメラを起動する際に必要なので、お忘れなく。

で、写真が無事に撮影できると、onActivityResult() が呼び出されるので、そこで行わせたい処理を記述します。
今回は、ImageView に撮影した写真を表示するように指定しています。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Bitmap bitmap;
        ImageView imageView = findViewById([ImageViewのID]);

        if( data.getExtras() != null){
            bitmap = (Bitmap) data.getExtras().get("data");
            if(bitmap != null){
               imageView.setImageBitmap(bitmap);
            }
        }
    }
}

ここまでを実行すれば、カメラの起動から、撮影した画像の表示までは問題なく動作します。

 

以上、Androidアプリで Intent を使ってカメラを起動する方法でした。
あとは、画像の保存機能の実装ですが、そこまではまだできていません。
原因としては、ストレージの権限あたりかと。
実装出来たら、その方法についても改めてまとめたいと思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG