Toast用于向用户显示一些帮助或提示,有三种展现形式:

• 文本类型

• 图片类型

• 复合类型

6.2.1 文本类型

下面看看一个文本类型Toast的例子,如图6-13所示,点击按钮会在屏幕的中下部分出现一个气泡,过一会又会消失了。





图 6-13图文本类型Toast

实现方式请参考代码清单6-10:

【代码清单6-10】 chapter6_6/src/com/work/Toast_1.java

public class Toast_1 extends Activity {


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


Button btn01 = (Button) findViewById(R.id.Button01);

btn01.setText(R.string.word);

btn01.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast.makeText(Toast_1.this, "你好我是Toast!", Toast.LENGTH_LONG)

.show();

}


});

}

}

Toast.makeText(…).show()实现一个Toast,Toast.LENGTH_LONG指定显示的时间是长时间模式,还有一个短时间模式Toast.LENGTH_SHORT。

6.2.2 图片类型

Toast可以显示文本信息,也可以显示图片信息,下面图6-14所示就是图片类型的Toast。





图6-14图片类型Toast

实现方式请参考代码清单6-11:

【代码清单6-11】 chapter6_6/src/com/work/Toast_2.java

public class Toast_2 extends Activity {


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


Button btn01 = (Button) findViewById(R.id.Button01);

btn01.setText(R.string.pictoast);

btn01.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

ImageView view = new ImageView(Toast_2.this);

view.setImageResource(R.drawable.image);

Toast toast = new Toast(Toast_2.this);

toast.setView(view);

toast.setDuration(Toast.LENGTH_SHORT);

toast.show();

}

});

}

}

使用Toast的Toast(Toast_2.this)构造方法构造一个Toast对象,然后再通过toast.setView(view)方法设定一个View对象,这个View对象是一个图片控件对象,此时Toast在显示的时候就会显示出一个图片了。

6.2.3 复合类型

Toast是可以显示图片和文本组合的,下面看看复合类型Toast例子,如图6-15所示。





图6-15 复合类型Toast

实现方式请参考代码清单6-12:

【代码清单6-12】 chapter6_6/src/com/work/Toast_3.java

public class Toast_3 extends Activity {


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


Button btn01 = (Button) findViewById(R.id.Button01);

btn01.setText(R.string.mixtoast);

btn01.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast toast = new Toast(Toast_3.this);

LinearLayout layout = new LinearLayout(Toast_3.this);

layout.setOrientation(LinearLayout.VERTICAL);


ImageView view = new ImageView(Toast_3.this);

view.setImageResource(R.drawable.image);

TextView textView = new TextView(Toast_3.this);

textView.setText("火箭队");


layout.addView(view);

layout.addView(textView);

toast.setView(layout);

toast.show();

}

});

}

}

本例中通过创建一个ImageView类型的对象和TextView类型的对象,并把这两个对象通过layout.addView()方法放入到LinearLayout布局对象中,再把toast.setView(layout)放入到Toast对象中。

6.2.4 自定义显示位置Toast

Toast默认显示的位置已经很清楚了。现在看看如何自定义Toast显示的位置,如图6-16所示:





图6-16 自定义Toast位置

实现方式请参考代码清单6-13:

【代码清单6-13】 chapter6_6/src/com/work/Toast_4.java

public class Toast_4 extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn01 = (Button) findViewById(R.id.Button01);

btn01.setText(R.string.custom);

btn01.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast toast = Toast.makeText(Toast_4.this,

"你好我是自定义位置的Toast!", Toast.LENGTH_LONG);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

}

});

}

}

toast.setGravity(Gravity.CENTER, 0, 0)方法设置Toast的位置,第一个参数是个对齐方式的常量,第二参数是在x轴的偏移量,第三个参数是在y轴的偏移量。

出自《Android开发案例驱动教程》第六章