アプリからギャラリーを起動して画像を取得しましょう

今回はAndroidアプリのActivityからギャラリーアプリを起動して、
画像データを取得する方法についてご紹介します。

ソースコードです

class MainActivity : AppCompatActivity() {

    companion object
    {
        const val REQUEST_IMAGE = 1000
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener {
            openImagePicker()
        }
    }

    private fun openImagePicker()
    {
        val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
        // カテゴリーを設定
        intent.addCategory(Intent.CATEGORY_OPENABLE)
        // MIMEタイプを設定
        intent.type = "image/*"

        startActivityForResult(intent, REQUEST_IMAGE)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(REQUEST_IMAGE == requestCode)
        {
            //成功しているか確認
            if(Activity.RESULT_OK == resultCode)
            {
         // データを確認
                val resultUri = data?.data
                if(null != resultUri)
                {
                    // イメージビューで表示
                    imageView.setImageURI(resultUri)
                }
            }
        }
    }
}

ドキュメントやファイルを開くための
インテント(Intent.ACTION_OPEN_DOCUMENT)を作成します

開く事のできるファイルを取得したいので
(Intent.CATEGORY_OPENABLE)とカテゴリーを指定します。

画像ファイルを取得したいので
MIMEタイプに(“image/*”)を指定します。

これらの設定をおこなったIntentを使用すると
画像ファイルを取得するためのギャラリーアプリが表示されます。

ギャラリーアプリで選択した画像データを
呼び出し元のActivityで取得したいので、
結果が受け取れるようにstartActivityForResultで
Intentを開いています。

結果はonActivityResultで受け取ります
成功していれば第三引数に画像のURIが格納されているので取得し、
ImageViewなどに渡して表示させます。

3ステップで画像を取得できるのでとても簡単ですね

水曜担当:Tanaka



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム