6.2 Toast 详解

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开发案例驱动教程》第六章
posted @ 2011-07-12 17:02  516inc  阅读(175)  评论(0编辑  收藏  举报