内容简介:
Android App开发过程中,Toast默认的显示方式是在屏幕的底部,但是,有时候,感觉文字显示在屏幕中间比较美观。本篇实现的功能是:让Toast文字可以根据不同的参数,来显示在屏幕中间,靠上或靠下,从而满足App的需求。
效果图:
核心代码:
ToastUtils.java工具类:
package com.example.buttontest.util;
import android.app.Activity;
import android.content.Context;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;
public class ToastUtils {
public static final int Toast_Position_default = 0;
public static final int Toast_Position_center = 1;
public static final int Toast_Position_top = 2;
private static Toast mToast;
public static Toast showToast(Context mContext,String msg,int pos) {
if (mToast == null) {
mToast = Toast.makeText(mContext,msg,Toast.LENGTH_SHORT);
}
setToastPos((Activity) mContext,pos);
mToast.show();
return mToast;
}
private static Toast setToastPos(Activity act, int pos) {
switch (pos) {
case Toast_Position_default:
//do noting;
break;
case Toast_Position_center:
mToast.setGravity(Gravity.CENTER, 0, 0);
break;
case Toast_Position_top:
setTopToast(act,act.getCurrentFocus());
break;
}
return mToast;
}
private static void setTopToast(Activity act, View v) {
Display display = act.getWindowManager().getDefaultDisplay();
int height = display.getHeight();
// 1/4屏幕高度
mToast.setGravity(Gravity.TOP, 0, height / 4);
}
}
分析:
1. 直接调用Toast的setGravity可以实现位置的调整;
2. 通过获取屏幕高度,再调用setGravity可以进行更加细粒度的参数调整。
调用方式:
在Activity中,调用代码如下:
Button toastBtn = findViewById(R.id.button_network_test);
toastBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtils.showToast(MainActivity.this,"this is my toast!",ToastUtils.Toast_Position_center);
}
});
欢迎转载,评论,关注 :)