Android自帶的Toast效果實在是不敢恭維,沒辦法,本身動手豐衣足食,想定義什麼樣的就定義什麼樣的,有技術就是任性,接下來自定義Toast步驟:
1,新建Toast對象:佈局
//獲取toast對象 Toast toast = new Toast(mContext);
2,利用layoutInflater獲取viewspa
//利用inflate方法獲取到view View view = LayoutInflater.from(mContext).inflate(R.layout.layout_toast,null);
3,設置toast的佈局:code
//設置toast的佈局 toast.setView(view);
4,設置toast的顯示時間:對象
//設置toast的顯示時間LENGTH_LONG或者LENGTH_SHORT toast.setDuration(Toast.LENGTH_LONG);
5,呈現出toast:get
//展現toast toast.show();
至此,toast自定義結束,讓你們看一看效果圖:
在第2步時我進行控件的綁定以及操做,實現toast佈局中控件的動態改變,代碼以下:it
//獲取activity中輸入框的內容 String mBtnStr = mEditBtn.getText().toString().trim(); String mContentStr = mEditContent.getText().toString().trim();
//綁定控件,並填充內容 mToastBtn = (Button) view.findViewById(R.id.btn); mToastContent = (TextView) view.findViewById(R.id.tv); mToastSeekBar = (SeekBar) view.findViewById(R.id.seekBar); mToastSeekBar.setMax(1000); mToastSeekBar.setProgress(40); //若獲取到的內容爲空,則顯示默認的textview或者button</span> mToastContent.setText(mContentStr.isEmpty() ? "textView" : mContentStr); mToastBtn.setText(mBtnStr.isEmpty() ? "button" : mBtnStr);
更改toast中textview和button值的效果圖以下:
在呈現toast以前,能夠去設置toast的位置:
調用 的方法是:io
setGravity(int gravity, int xOffset, int yOffset)
//自定義toast彈出位置,<span style="font-family:KaiTi_GB2312;">如今處於手機屏幕中央</span> toast.setGravity(0,0,0);
效果圖如上圖ast
//自定義toast彈出位置,x軸方向上偏移200 toast.setGravity(0,200,0);
效果圖以下
方法
//自定義toast彈出位置,x軸方向上偏移100 toast.setGravity(0,100,0);
效果圖以下,對比兩個圖就能夠發現偏移量是從gravity 的位置開始算起,y軸上方偏移量相似,再也不贅述
im