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

【Android】ダイアログの表示位置を変更する方法を解説

この記事では、Androidアプリにおいてダイアログ(AlertDialog)の画面上の表示位置を変更する方法を、実際のサンプルコードとともにわかりやすく解説します。

通常、AlertDialogは画面中央に表示されますが、setGravity()メソッドを使用することで、画面下部や上部など、任意の位置にダイアログを配置できます。

ステップ1:新規プロジェクトの作成

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。

ステップ2:レイアウトファイルの編集

次に、res/layout/activity_main.xmlに以下のコードを追加します。

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
</RelativeLayout>

ステップ3:MainActivity.javaの編集

src/MainActivity.javaに以下のコードを追加します。ポイントは最後の行にあるalertDialog.getWindow().setGravity(Gravity.BOTTOM);です。ここでダイアログの表示位置を画面下部(BOTTOM)に指定しています。

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Alert Dialog");
        builder.setMessage("Have a nice day!");
        builder.setCancelable(false);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        final AlertDialog alertDialog = builder.create();
        alertDialog.show();
        alertDialog.getWindow().setGravity(Gravity.BOTTOM);
    }
}

なお、Gravity.BOTTOMの部分をGravity.TOPに変更すれば画面上部に、Gravity.CENTERにすれば画面中央にダイアログを表示することも可能です。

ステップ4:AndroidManifest.xmlの確認

androidManifest.xmlには以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <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」アイコンをクリックします。表示された選択肢からお使いのモバイルデバイスを選択すると、実機の画面にアプリが起動し、以下のように画面下部にダイアログが表示されます。

【Android】ダイアログの表示位置を変更する方法を解説

  1. Androidでアラートダイアログを表示する方法【初心者向けサンプルコード付き】

    Androidでアラートダイアログ(AlertDialog)を表示する方法このチュートリアルでは、Androidアプリでアラートダイアログを表示する方法を解説します。サンプルとして、戻るボタンが押されたタイミングで「本当に終了しますか?」という確認ダイアログを表示する実装を紹介します。アプリの誤操作による終了を防ぎたい場合などに役立つ、定番のテクニックです。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し、メニューから File → New Project を選択します。必要な項目(プロジェクト名、パッケージ名、保存場所など)を入力して

  2. Androidアプリで画面の明るさをプログラムから変更する方法【コード付き解説】

    はじめにこの記事では、Androidアプリからプログラムを使って画面の明るさ(輝度)を変更する方法を解説します。SeekBar(スライダー)を操作すると、端末の画面輝度がリアルタイムに変化するシンプルなサンプルアプリを一緒に作成していきましょう。ステップ1:新規プロジェクトの作成まずはAndroid Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。ステップ2:レイアウトファイル(activity_main.xml)の編集次に、res/layout/activity_main.xml