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 件のコメント:
コメントを投稿