自定义toast

xiaoxiao2021-02-27  396

** * Toast 显示工具类 * * */ public class ToastUtil { Context context; /** * 弹出短时间toast * * @param str * 显示的内容 */ public static void shortToast(Context context, String str) { showToast(context, str); } /** * 弹出长时间的toast * * @param str * 显示的内容 */ public static void longToast(Context context, String str) { if(toast==null){ toast = new Toast(context); } View layout = LayoutInflater.from(context).inflate(R.layout.act_my_toast,null); TextView text = (TextView) layout.findViewById(R.id.tv_toast_text); text.setText(str); //下面一行代码是设置toast的位置,有三个参数(第一个toast的位置,第二个x轴,第三个是y轴) //我的需要是距底部110dp toast.setGravity(Gravity.BOTTOM, 0, DensityUtil.dip2px(context, 110)); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); } private static Toast toast; /** * @param str */ public static void showToast(Context context ,String str){ if(toast==null){ toast = new Toast(context); } View layout = LayoutInflater.from(context).inflate(R.layout.act_my_toast,null); TextView text = (TextView) layout.findViewById(R.id.tv_toast_text); text.setText(str);//下面一行代码是设置toast的位置,有三个参数(第一个toast的位置,第二个x轴,第三个是y轴)//我的需要是距底部110dp toast.setGravity(Gravity.BOTTOM, 0, DensityUtil.dip2px(context, 110)); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); }DensityUtil是我封装的工具类 /** * 根据手机的分辨率 dp(相对单位) 转成 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } 布局文件act_my_toast,根据自己的需求改就行 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_marginLeft="60dp" android:layout_marginRight="60dp" android:id="@+id/tv_toast_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ffffff" android:lineSpacingExtra="6dp" android:textSize="15dp" android:gravity="center" android:background="@drawable/shape_my_toast"/> </LinearLayout> 背景shape_my_toast,这个根据自己的需求自己设置 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> android:shape="rectangle"> <solid android:color="#000000"/> <corners android:radius="3dp"/> <padding android:bottom="15dp" android:top="15dp" android:right="15dp" android:left="15dp"/> </shape>toast也可以设置toast居中显示
转载请注明原文地址: https://www.6miu.com/read-3380.html

最新回复(0)