在一般的android開發中我們一般彈出一些提示信息,例如 已打開藍牙,wifi之類的提示,我們都是會選擇Toast進行彈出。今天我們的客戶提出們應用彈出提示太小,用戶不注意的情況下,容易被忽略掉,要彈出的寬度填充整個屏幕,首先想到是不是需要自定義Toast,經過自己的一番研究后,發現不需要自定Toast,用現有的Toast就可以輕松實現了。
public void showToast(Context conext,String str){
if(mToast ==null){
Log.i(“showToast”,”showToast…….”);
mToast = Toast.makeText(conext, null, Toast.LENGTH_SHORT);
mToast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout)mToast.getView();
WindowManager wm = (WindowManager)conext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
tv=new TextView(this);
toastView.setBackgroundResource(R.mipmap.bg);
tv.setTextSize(40);
toastView.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 180);
tv.setLayoutParams(params);
mToast.setView(toastView);
toastView.addView(tv);
}
tv.setText(str);
mToast.show();
}
就可以實現下面的效果。