Android Toast的幾種使用方式及注意事項(xiàng)
Toast是Android中常用的組件,下面介紹下Toast使用的幾種方式和注意事項(xiàng)。
Toast的使用方式簡單來說有下面五種:
1、默認(rèn)的顯示
// 第一個(gè)參數(shù):當(dāng)前的上下文環(huán)境??捎胓etApplicationContext()或Activity的context // 第二個(gè)參數(shù):要顯示的字符串。也可是R.string中字符串ID // 第三個(gè)參數(shù):顯示的時(shí)間長短。Toast默認(rèn)的有兩個(gè)LENGTH_LONG(長)和LENGTH_SHORT(短),也可以使用毫秒如2000ms Toast toast=Toast.makeText(mContext, "默認(rèn)的Toast", Toast.LENGTH_SHORT); //顯示toast信息 toast.show();
2、自定義位置顯示(值改變位置)
Toast toast=Toast.makeText(mContext, "自定義顯示位置的Toast", Toast.LENGTH_SHORT); //第一個(gè)參數(shù):設(shè)置toast在屏幕中顯示的位置。這里設(shè)置是居中靠頂 //第二個(gè)參數(shù):相對于第一個(gè)參數(shù)設(shè)置toast位置的橫向X軸的偏移量,正數(shù)向右偏移,負(fù)數(shù)向左偏移 //第三個(gè)參數(shù):相對于第一個(gè)參數(shù)設(shè)置toast位置的縱向y軸的偏移量,正數(shù)向下偏移,負(fù)數(shù)向上偏移 //如果你設(shè)置的偏移量超過了屏幕的范圍,toast將在屏幕內(nèi)靠近超出的那個(gè)邊界顯示 toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100); //屏幕居中顯示,X軸和Y軸偏移量都是0 //toast.setGravity(Gravity.CENTER, 0, 0); toast.show();
3、帶圖片顯示(能夠顯示一個(gè)圖標(biāo))
Toast toast=Toast.makeText(mContext, "顯示帶圖片的toast", 2000); toast.setGravity(Gravity.CENTER, 0, 0); //創(chuàng)建圖片視圖對象 ImageView imageView= new ImageView(mContext); //設(shè)置圖片 imageView.setImageResource(R.drawable.image); //獲得toast的布局 LinearLayout toastView = (LinearLayout) toast.getView(); //設(shè)置此布局為橫向的 toastView.setOrientation(LinearLayout.HORIZONTAL); //將ImageView在加入到此布局中的第一個(gè)位置 toastView.addView(imageView, 0); toast.show();
4、完全自定義顯示
LayoutInflater inflater = getLayoutInflater(); //通過制定XML文件及布局ID來填充一個(gè)視圖對象 View layout = inflater.inflate(R.layout.test,(ViewGroup)findViewById(R.id.toast)); ImageView image = (ImageView) layout.findViewById(R.id.image); //設(shè)置布局中圖片視圖中圖片 image.setImageResource(R.drawable.toast_image); TextView title = (TextView) layout.findViewById(R.id.title); //設(shè)置標(biāo)題 title.setText("標(biāo)題"); TextView text = (TextView) layout.findViewById(R.id.content); //設(shè)置內(nèi)容 text.setText("自定義Toast"); Toast toast= new Toast(mContext); toast.setGravity(Gravity.CENTER , 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();
5、在其他線程中調(diào)用顯示
Toast只能運(yùn)行在主UI線程,所以在線程中使用時(shí)必須結(jié)合Handler,通過發(fā)消息的方式最終在主線程顯示Toast
Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { int what=msg.what; switch (what) { case 1: showToast(); break; } }; public void showToast(){ Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他線程中顯示", Toast.LENGTH_SHORT); toast.show(); } Runnable runnable = new Runnable(){ @Override public void run() { handler.sendEmptyMessage(1); } }
Toast使用注意事項(xiàng):
1、Toast只能在UI線程當(dāng)中使用,在非UI線程使用會(huì)拋異常;
2、使用Toast時(shí)最好定義一個(gè)全局的 Toast 對象,這樣可以避免連續(xù)顯示
Toast 時(shí)不能取消上一次 Toast 消息的情況(如果你有連續(xù)彈出 Toast 的情況,避免
使用 Toast.makeText)。
取消toast的方法為toast.cancel();
到此這篇關(guān)于Android Toast的幾種使用方式的文章就介紹到這了,更多相關(guān)Android Toast的幾種使用方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android仿IOS ViewPager滑動(dòng)進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android仿IOS ViewPager滑動(dòng)進(jìn)度條的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01android開發(fā)之關(guān)閉所有的activity的方法
本篇文章主要介紹了android開發(fā)之關(guān)閉所有的activity的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Android APP之WebView校驗(yàn)SSL證書的方法
這篇文章主要介紹了Android APP之WebView校驗(yàn)SSL證書的方法,需要的朋友可以參考下2017-09-09Android activity和view判斷滑動(dòng)
這篇文章主要介紹了Android activity和view判斷滑動(dòng)的相關(guān)資料,需要的朋友可以參考下2017-06-06android 獲取手機(jī)GSM/CDMA信號(hào)信息,并獲得基站信息的方法
下面小編就為大家?guī)硪黄猘ndroid 獲取手機(jī)GSM/CDMA信號(hào)信息,并獲得基站信息的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11Gradle學(xué)習(xí)教程之部署上傳項(xiàng)目詳解
這篇文章主要給大家介紹了關(guān)于Gradle學(xué)習(xí)教程之部署上傳項(xiàng)目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04Android IPC機(jī)制ACtivity綁定Service通信代碼實(shí)例
這篇文章主要介紹了Android IPC機(jī)制ACtivity綁定Service通信代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09兩個(gè)surfaceView實(shí)現(xiàn)切換效果
這篇文章主要為大家詳細(xì)介紹了兩個(gè)surfaceView實(shí)現(xiàn)切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11