[Android] Toast をカスタマイズする

トーストで表示される色や形がいまいちアプリに合わないと思うことは多々あるのではないでしょうか。

Snackbar を使って代替えにできます

Android Studio 3.6
API 29




Custom Toast

 

(注) Android 11 からはToastに関して変更点があります。
簡単な Toast は使えますが、以下のような setViewを使うようなカスタムトーストはAPI30からは非推奨になりました。

しばらくは残しておきますがいずれこの記事も削除する予定です。

Android 11 でのトーストに関する更新

  • バックグラウンドからのカスタム トーストのブロック
  • トーストのコールバック
  • Text Toast API の変更

このため、

Toastはちょっとした確認メッセージを入れるのにとても適しています。ただテキスト、あるいは画像を表示させるのであれば他の方法もありますが、ほどほどの時間で消えてくれるところがいいですね。これをタイマー使うと煩雑なコードになりそうです。

1x1.trans - [Android] Toast をカスタマイズする


 
 

カスタマイズ

 

カスタマイズとして、このくらい手を加えてみます。

  • 画像付きのメッセージ
  • ダイアログの形は丸角
  • グラデーションのついた背景

大元のToastをインポートします
import android.widget.Toast;
 

 
これでdefaultのトーストはできあがりで、これを拡張していきます

  1. TextViewとImageViewを乗せたViewを作り
    1. custom_toast.xmlというレイアウトファイルにします
  2. そのViewを inflate を使ってactivity_main に挿入
  3. TextViewは背景を shape を使って色を付けたり、角を丸く

 

 

サンプルコード

 

MainActivity.java

 
activity_main.xml

 
Inflateするレイアウトファイルを作成して res/layout/ 以下に配置します。
また例えば画像(ok.png)をdrawableに入れておきます。
custom_toast.xml

 
背景を丸角のボックスで、エメラルド系のグラテーションを施してみます。
shape を使った定義xmlを、drawable フォルダに入れます
 
round_rectangle.xml

 
リソース

 

 

サンプル動画

 

 

custom_toast.xml を色々修正してアプリのテーマにあったカスタマイズができますね
 
 
関連ページ;

 

Refferences:
Toasts | Android Developers
Toasts
Android 11 でのトーストに関する更新

シェアする

  • このエントリーをはてなブックマークに追加

フォローする