KotlinでAndroidのギャラリーから画像を選択して表示する方法を徹底解説
はじめに
この記事では、Kotlinを使用してAndroid端末の画像ギャラリーから画像を選択し、アプリ内に表示する方法をステップごとに解説します。Intentを使ったシンプルな実装なので、Android開発初心者の方でもすぐに試せる内容になっています。
手順1:新規プロジェクトの作成
まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。
手順2:レイアウトファイル(activity_main.xml)の編集
res/layout/activity_main.xmlに以下のコードを追加します。選択した画像を表示する「ImageView」と、ギャラリーを開くための「Button」を配置した、シンプルな縦方向のLinearLayout構成です。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="2dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/buttonLoadPicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0"
android:text="Load Picture" />
</LinearLayout>
手順3:MainActivity.ktの実装
src/MainActivity.ktに以下のコードを追加します。
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
lateinit var imageView: ImageView
lateinit var button: Button
private val pickImage = 100
private var imageUri: Uri? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
imageView = findViewById(R.id.imageView)
button = findViewById(R.id.buttonLoadPicture)
button.setOnClickListener {
val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI)
startActivityForResult(gallery, pickImage)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK && requestCode == pickImage) {
imageUri = data?.data
imageView.setImageURI(imageUri)
}
}
}
このコードでは、ボタンがタップされると Intent(Intent.ACTION_PICK) を使ってギャラリーアプリが起動します。ユーザーが画像を選択すると、onActivityResult() コールバックでその画像のURIを受け取り、setImageURI() によってImageViewに表示される仕組みです。
手順4:AndroidManifest.xmlへの権限追加
androidManifest.xmlに以下のコードを追加します。ギャラリーから画像を読み込むため、外部ストレージの読み取り権限(READ_EXTERNAL_STORAGE)を宣言しておきます。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
アプリの実行と動作確認
それでは、アプリを実行してみましょう。ここでは、実際のAndroid端末をパソコンに接続していることを前提としています。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーにあるRunアイコン
をクリックします。接続済みのモバイルデバイスを選択すると、端末上にアプリの初期画面が表示されます。



補足:最新のAPIについて
なお、本記事で使用している startActivityForResult() および onActivityResult() は、現在のAndroid APIでは非推奨(Deprecated)となっています。新しいプロジェクトでは、Activity Result API(registerForActivityResult() と ActivityResultContracts.PickVisualMedia など)を使用することが公式に推奨されているため、実務での開発時には注意しましょう。
-
【Android】コードからImageViewのマージン(余白)を設定する方法
この記事では、Androidアプリ開発においてJavaコードを使ってImageViewのマージン(余白)を動的に設定する方法を解説します。レイアウトXMLではなくプログラム側で余白を制御したい場合に役立つテクニックです。全体の流れ今回のサンプルでは、RelativeLayoutの中に配置したImageViewに対して、setMargins()メソッドを使って上下左右すべてに余白を設定します。ステップ1:新規プロジェクトを作成するまず、Android Studioで新しいプロジェクトを作成しましょう。メニューから「File ⇒ New Project」を選択し、必要な項目を入力してプロジェクトを
-
AndroidでImageViewの画像を指定した角度で回転させる方法
このチュートリアルでは、AndroidアプリでImageViewに表示した画像を、指定した角度で回転させる方法を解説します。サンプルとして、ボタンをタップすると画像が90度回転するシンプルなアプリを作成します。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_main.xml)にコードを追加する res/layout/activity_main.xml に以下のコードを記述します。