Toast
是一個
View
視圖,快速的為用戶顯示少量的信息。
Toast
在應(yīng)用程序上浮動顯示信息給用戶,它永遠(yuǎn)不會獲得焦點,不影響用戶的輸入等操作,主要用于
一些幫助
/
提示。
Toast
最常見的創(chuàng)建方式是使用靜態(tài)方法
Toast.makeText
我使用的是
SDK 2.2
1.
默認(rèn)的顯示方式
![](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_1.jpg)
Java代碼 ![收藏代碼](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_3.png) - // 第一個參數(shù):當(dāng)前的上下文環(huán)境??捎胓etApplicationContext()或this
- // 第二個參數(shù):要顯示的字符串。也可是R.string中字符串ID
- // 第三個參數(shù):顯示的時間長短。Toast默認(rèn)的有兩個LENGTH_LONG(長)和LENGTH_SHORT(短),也可以使用毫秒如2000ms
- Toast toast=Toast.makeText(getApplicationContext(), "默認(rèn)的Toast", Toast.LENGTH_SHORT);
- //顯示toast信息
- toast.show();
2.
自定義顯示位置
![](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_4.jpg)
Java代碼 ![收藏代碼](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_3.png) - Toast toast=Toast.makeText(getApplicationContext(), "自定義顯示位置的Toast", Toast.LENGTH_SHORT);
- //第一個參數(shù):設(shè)置toast在屏幕中顯示的位置。我現(xiàn)在的設(shè)置是居中靠頂
- //第二個參數(shù):相對于第一個參數(shù)設(shè)置toast位置的橫向X軸的偏移量,正數(shù)向右偏移,負(fù)數(shù)向左偏移
- //第三個參數(shù):同的第二個參數(shù)道理一樣
- //如果你設(shè)置的偏移量超過了屏幕的范圍,toast將在屏幕內(nèi)靠近超出的那個邊界顯示
- toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100);
- //屏幕居中顯示,X軸和Y軸偏移量都是0
- //toast.setGravity(Gravity.CENTER, 0, 0);
- toast.show();
3.
帶圖片的
![](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_5.jpg)
Java代碼 ![收藏代碼](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_3.png) - Toast toast=Toast.makeText(getApplicationContext(), "顯示帶圖片的toast", 3000);
- toast.setGravity(Gravity.CENTER, 0, 0);
- //創(chuàng)建圖片視圖對象
- ImageView imageView= new ImageView(getApplicationContext());
- //設(shè)置圖片
- imageView.setImageResource(R.drawable.ic_launcher);
- //獲得toast的布局
- LinearLayout toastView = (LinearLayout) toast.getView();
- //設(shè)置此布局為橫向的
- toastView.setOrientation(LinearLayout.HORIZONTAL);
- //將ImageView在加入到此布局中的第一個位置
- toastView.addView(imageView, 0);
- toast.show();
4.
完全自定義顯示方式
![](http://image108.360doc.com/DownloadImg/2017/08/0210/107310846_6.jpg)
Java代碼 ![收藏代碼](http://pubimage.360doc.com/wz/default.gif) - //Inflater意思是充氣
- //LayoutInflater這個類用來實例化XML文件到其相應(yīng)的視圖對象的布局
- LayoutInflater inflater = getLayoutInflater();
- //通過制定XML文件及布局ID來填充一個視圖對象
- View layout = inflater.inflate(R.layout.custom2,(ViewGroup)findViewById(R.id.llToast));
-
- ImageView image = (ImageView) layout.findViewById(R.id.tvImageToast);
- //設(shè)置布局中圖片視圖中圖片
- image.setImageResource(R.drawable.ic_launcher);
-
- TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
- //設(shè)置標(biāo)題
- title.setText("標(biāo)題欄");
-
- TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
- //設(shè)置內(nèi)容
- text.setText("完全自定義Toast");
-
- Toast toast= new Toast(getApplicationContext());
- toast.setGravity(Gravity.CENTER , 0, 0);
- toast.setDuration(Toast.LENGTH_LONG);
- toast.setView(layout);
- toast.show();
5.
其他線程通過
Handler
的調(diào)用
![](http://pubimage.360doc.com/wz/default.gif)
Java代碼 ![收藏代碼](http://pubimage.360doc.com/wz/default.gif) - //調(diào)用方法1
- //Thread th=new Thread(this);
- //th.start();
- //調(diào)用方法2
- handler.post(new Runnable() {
- @Override
- public void run() {
- showToast();
- }
- });
Java代碼 ![收藏代碼](http://pubimage.360doc.com/wz/default.gif) - public void showToast(){
- Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他線程中調(diào)用顯示", Toast.LENGTH_SHORT);
- toast.show();
- }
Java代碼 ![收藏代碼](http://pubimage.360doc.com/wz/default.gif) - Handler handler=new Handler(){
- @Override
- public void handleMessage(Message msg) {
- int what=msg.what;
- switch (what) {
- case 1:
- showToast();
- break;
- default:
- break;
- }
-
- super.handleMessage(msg);
- }
- };
Java代碼 ![收藏代碼](http://pubimage.360doc.com/wz/default.gif) - @Override
- public void run() {
- handler.sendEmptyMessage(1);
- }
源代碼下載地址:
|