2011-04-18 Toast(トースト)の表示時間を短くする
Toast(トースト)の表示時間を短くする
Toastの表示時間をもっと短くしたい!
Androidには、ユーザにメッセージを通知する仕組みとして"Toast"が用意されています。
↓こんなの(「記入しました」って部分)。
で、このToastには表示時間が短い"Toast.LENGTH_SHORT"と、表示時間が長い"Toast.LENGTH_LONG"が指定できます。
ただこれ、表示時間が短い"Toast.LENGTH_SHORTでも2秒くらいは表示され続けてしまいます。
今回は、このToastの表示時間をもっと短くするためのやり方をご紹介します。
とりあえずコードを
public class QuickToastTask extends AsyncTask<String, Integer, Integer> { private Toast toast; private final Context context; private final int msgResId; private int dispTime; private static final int SHORT = 800; public QuickToastTask(final Context context, final int msgResId) { this.msgResId = msgResId; this.context = context; this.dispTime = SHORT; } @Override protected void onPreExecute() { Toast toast = Toast.makeText(context, msgResId, Toast.LENGTH_SHORT); this.toast = toast; toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } @Override protected Integer doInBackground(final String... params) { try { //ここでトースト表示時間分Sleepさせる。 Thread.sleep(dispTime); } catch (InterruptedException e) { e.printStackTrace(); } return 0; } @Override protected void onPostExecute(final Integer i) { //キャンセルするとトーストが消えます。 this.toast.cancel(); } }
使い方
new QuickToastTask(getApplicationContext(), R.string.REGISTER_COMPLETE_MESSAGE).execute();
説明
まあ、要はAsyncTaskで、Toastを表示させたい時間だけSleepさせて、その後、Toastをキャンセルするということです。
これで、好きな時間だけ表示させることが可能になりました。
※QuickToastTaskをラップしたUtilクラスを作ってもいいかもしれませんね。
この欲求の背景
「マネーCalc」では、
家計簿に記入したあとに「記入しました」とToast表示しています。
ユーザからすると恐らくToast表示が終わったら、登録が完了したと認識している方が多いと思います。
なので、Toast表示を短くすることで、登録が素早く完了したと認識させたいと思ったからです。
定型的なメッセージは、長い時間表示されると結構ウザイので、
このクラスを使ってサクサクToast表示をしてみてはいかがでしょうか
トラックバック - http://d.hatena.ne.jp/shepherdMaster/20110418/1303165701
リンク元
- 3 http://www.google.co.jp/
- 2 http://docomo.ne.jp/cp/as-rslt.cgi?pno=1&key=マネーカルク+アプリ+ダウンロード&sid=000
- 2 http://docomo.ne.jp/cp/as-rslt.cgi?pno=2&key=アプリ+家計簿&fid=5
- 2 http://ezsch.ezweb.ne.jp/search/?query=まどか☆マギカ+エンジェルウォーズ&start-index=6&adpage=3&ct=1301&sr=0000&t=20110427044839&filter=1
- 2 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=Android 家計簿
- 2 http://msearch.mobile.goo.ne.jp/dream-prize/search.php?MT=家計簿アプリ&IE=euc&OE=sjis&DC=5&CONTENT=clientweb&FLT=0&AB=0&QGA=0&HOST=&FR=6&OT=1&guid=ON
- 2 http://www.google.co.jp/search?source=ig&hl=ja&rlz=1G1GGLQ_JAJP323&q=世界中の羊を&aq=f&aqi=&aql=&oq=
- 2 http://www.google.com/search?hl=ja&q=android+家計簿 マネーcalc&aq=f&aqi=&aql=&oq=
- 1 http://d.hatena.ne.jp/uehaj/
- 1 http://search.mobile.yahoo.co.jp/onesearch?fr=m_top_y&p=トースト 表示時間