290
技術社區[雲棲]
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開發案例驅動教程》第六章
最後更新:2017-04-02 06:51:43