アプリからギャラリーを起動して画像を取得しましょう
- 2021年3月31日
- Android
今回は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
tanaka at 2021年03月31日 10:00:41