Android
 Computer >> コンピューター >  >> プログラミング >> Android

Kotlinを使ってAndroidアプリでImageViewの幅と高さをプログラム的に設定する方法

この記事では、Kotlinを使用してAndroidアプリ内でImageViewの幅と高さをプログラム的に設定する方法を、ステップごとにわかりやすく解説します。レイアウトXMLに直接サイズを記述するのではなく、コードから動的にImageViewを生成し、サイズを指定する手法を学びましょう。

手順1:新規プロジェクトを作成する

Android Studioを開き、File → New Project を選択して新しいプロジェクトを作成します。必要な項目(プロジェクト名、パッケージ名、保存先など)をすべて入力してプロジェクトを完成させてください。

手順2:activity_main.xml にコードを追加する

res/layout/activity_main.xml に以下のコードを追加します。ここでは、ImageViewを後から追加するための空のRelativeLayoutを配置しています。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">
</RelativeLayout>

手順3:MainActivity.kt にコードを追加する

src/MainActivity.kt に以下のコードを追加します。このコードでは、ImageViewをコード上で生成し、RelativeLayout.LayoutParams を使って幅と高さを MATCH_PARENT に設定しています。数値(ピクセル単位)を指定すれば、任意のサイズに変更することも可能です。

import android.os.Bundle
import android.widget.ImageView
import android.widget.RelativeLayout
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        val relativeLayout: RelativeLayout = findViewById(R.id.relativeLayout)
        val imageView = ImageView(this)
        imageView.setImageResource(R.drawable.image)
        val params = RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.MATCH_PARENT,
            RelativeLayout.LayoutParams.MATCH_PARENT
        )
        imageView.layoutParams = params
        relativeLayout.addView(imageView)
    }
}

ポイント: 特定のサイズを指定したい場合は、以下のようにピクセル値を渡すこともできます。

val params = RelativeLayout.LayoutParams(500, 300) // 幅500px、高さ300px

手順4:AndroidManifest.xml の確認

androidManifest.xml は以下のようになっていることを確認してください。通常、新規プロジェクト作成時に自動生成されるため、特別な変更は不要です。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">
    <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端末をPCに接続していることを前提としています。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーの実行(Run)アイコンをクリックします。表示された選択肢から接続中のモバイルデバイスを選択すると、実機の画面にImageViewが表示されます。

正常に動作していれば、画面いっぱいに画像が表示されているはずです。LayoutParamsの値を変更することで、幅や高さがどのように変化するか試してみてください。

  1. Androidデバイスの画面の高さ・幅を取得する方法【サンプルコード付き】

    この記事では、Androidアプリで端末の画面の高さ(Height)と幅(Width)を取得する方法を、実際に動作するサンプルコードとともにステップごとに解説します。あわせて、画面サイズ(インチ数)を計算して表示する方法も紹介します。 仕組みのポイント:DisplayMetricsクラス Androidでは、DisplayMetricsクラスを使うことで、画面のピクセル数や密度(dpi)といったディスプレイ情報を簡単に取得できます。本記事のサンプルでは、このクラスを利用して画面の高さ・幅・インチ数を求めていきます。 手順1:Android Studioで新規プロジェクトを作成する Androi

  2. AndroidでImageViewの幅と高さを取得する方法【サンプルコード付き】

    この記事では、Androidアプリ開発において android.widget.ImageView の幅(width)と高さ(height)を取得する方法を、実際に動作するサンプルコードとともにステップごとに解説します。実装の全体像ImageViewのサイズを取得するには、getWidth() メソッドと getHeight() メソッドを使用します。ここでは、ボタンをタップしたときにImageViewのサイズを取得し、TextViewに結果を表示するシンプルなサンプルアプリを作成します。手順1:新しいプロジェクトを作成するAndroid Studioを起動し、メニューから「File」→「New