A Toast class has the function displaying the textual message quickly. Using the Toast class, we coded the program that a toast appears near the tapped position, and the tapped position is displayed in the toast.
トースト(toast)とは
情報通知用の一時的な小さなウィンドウのことだそうです。トーストは、何かしらのアクションや状態変化が起きた場合に現れ、一定時間が経過すると消えるようになっています。ちなみにtoastという英単語を調べると、名詞では焼いた薄切りのパン(トースト)のことで、動詞ではパンなどを”焼く”とか"あぶる"といった意味をもっていました。ネーミングセンスがすごくいい感じです。
Toastクラスのメソッド
void setDuration(int duration)
トーストの表示時間を設定します。引数には、表示時間の長さを決定するToastクラスのフィールドLENGTH_LONG、LENGTH_SHORTを指定します。
void cancel()
トーストが表示されていた場合、このメソッドを呼び出すと強制的にトーストを閉じることができます。
void setGravity(int gravity, int xOffset, int yOffset)
トーストの表示位置を設定します。引数には、オブジェクトの配置方法、x軸の位置、y軸の位置を指定します。
void setView(View view)
トーストのビューを設定します。
void show()
トーストを表示します。
ソースコード
ソースコードは「Beta.java」と「ToastView.java」の2つです。「Beta.java」はToastViewを表示するためのアクティビティです。「ToastView.java」は、タップした位置付近にトーストを表示する機能を実装しました。
/LayoutTest/src/org/example/layout/Beta.java
package org.example.layout; import android.app.Activity; import android.os.Bundle; public class Beta extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new ToastView(this)); } }
/LayoutTest/src/org/example/layout/ToastView.java
package org.example.layout; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class ToastView extends View{ Toast toast; TextView textView; public ToastView(Context context) { super(context); toast = new Toast(context); textView = new TextView(context); textView.setTextColor(0xff000000); toast.setDuration(Toast.LENGTH_SHORT); } @Override protected void onDraw(Canvas canvas) { Paint rect = new Paint(); rect.setColor(0xffffffff); canvas.drawRect(0, 0, getWidth(), getHeight(), rect); } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: toast.cancel(); break; case MotionEvent.ACTION_UP: int x = (int) event.getX(); int y = (int) event.getY(); String string = "" + x + ", " + y; toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y); textView.setText(string); toast.setView(textView); toast.show(); break; } return true; } }
実行結果
白いビュー中の適当な位置をタップすると、そのタップした位置の右上付近に座標が表示されます。そして、一定時間経つと消えます。
タップしてはいけない位置や、入力項目に不備がある場合に表示する警告ウィンドウとして、トーストがすごく使えそうです。
0 件のコメント:
コメントを投稿