【Android】ダイアログの文字色・文字サイズ・背景色のカスタマイズ方法(Kotlin編)

Sara

この記事ではダイアログの文字色・文字サイズ・色などのカスタマイズ方法を紹介します。

レイアウトファイルを作らない方法なので、少しだけサイズや色を変えたいときに便利なコードです。

デフォルト

カスタマイズ後

ダイアログの基本的な使い方は以下の記事をお読み下さい。
>> ダイアログを表示する方法① 基本型(Kotlin 編)

>> Java バージョンはこちら

開発環境

Android StudioHedgehog | 2023.1.1
Android EmulatorPixel 3a (API 34)
minSdk21
targetSdk34

ファイル名について

このサンプルでは MyDialogFragment.kt にコードを書きます。

このファイルの作成方法は以下の記事をお読みください。
>> ダイアログを表示する方法① 基本型(Kotlin 編)

解説

1. カラーの用意

res → values → colors.xml に使用する色を用意しておきます。色は自由に変更してください。

2. タイトルのカスタマイズ

まずはタイトルをカスタマイズします。(6~12・16行目)

ここではタイトル用の TextView を用意して

  • 表示するテキスト
  • 文字サイズ
  • 文字色
  • 背景色
  • Padding
  • 揃える位置

の順番で設定しています。

9行目
titleView.setTextColor(Color.WHITE);

文字の色は Color クラスに用意されている WHITE(白)を使っています。

黒・白・赤などの一般的な色は Color クラスに用意されているので、簡単に使うことができます。

使用できる色は https://developer.android.com/reference/android/graphics/Color#summary をお読みください。

10行目
titleView.setBackgroundColor(getResources().getColor(R.color.blue));

背景色には先ほど colors.xml に定義した色を使っています。

RGB や HEX を使った色の指定方法は【Android Studio】Colorクラス・Resources を使った色の指定方法まとめ をお読みください。

getColor メソッドが API 23 から Deprecated(非推奨)になっています。このままでも現時点では問題ありませんが、以下のように対応することも可能です。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    titleView.setBackgroundColor(resources.getColor(R.color.blue, context?.theme))
} else {
    titleView.setBackgroundColor(resources.getColor(R.color.blue))
}
11行目
titleView.setPadding(20, 20, 20, 20);

Padding(パディング)は、TextView の枠と文字の距離(すき間)の部分です。

ここでは Padding を「左・上・右・下」の順番で指定しています。

今回はタイトルを中央揃えにしているので、左右の Padding は 0 しても問題ありません。

16行目
.setCustomTitle(titleView)

setTitle メソッドではなく setCustomTitle メソッドを使うのがポイントです。

これでタイトルのカスタマイズは完了です。

3. メッセージのカスタマイズ

次にメッセージ部分のカスタマイズをします。

タイトルと同じように TextView でカスタマイズできます。(15~19・24行目)

設定項目はタイトルで使ったものと同じです。

メッセージ部分にも背景色を付けたい場合は、タイトルと同じように setBackgroundColor メソッドを使います。

24行目
.setView(msgView)

setMessage メソッドではなく setView メソッドを使います。

4. ボタンのカスタマイズ

onCreateDialog メソッドでは、まだダイアログが作成されていないのでボタンをカスタマイズすることができません。

ボタンはダイアログが表示される直前に呼ばれる onStart メソッドでカスタマイズします。

7~11行目を追加します。

今回は POSITIVE ボタンだけ使用していますが、NEGATIVE, NEUTRAL ボタンも同じように取得・カスタマイズできます。

.getButton(AlertDialog.BUTTON_NEGATIVE)
.getButton(AlertDialog.BUTTON_NEUTRAL)

完成

以上で完成です。

アプリを実行すると、以下のようなダイアログが表示されます。

その他のダイアログの使い方は以下の記事をお読みください。

あわせて読みたい
【Android】ダイアログの使い方まとめ(Java & Kotlin対応)
【Android】ダイアログの使い方まとめ(Java & Kotlin対応)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました