Android封装自定义Toast

怎么改变Android默认Toast的颜色和大小,自定义我们自己需要的效果?

效果图:

ps:想体验效果的伙伴可以去华为应用市场下载《扬帆心理》APP。(本人在大二时开发的)

Android封装自定义Toast_第1张图片     

 

思路:我在这里封装了一个Toast工具类,这样在想用时,直接调用里面的方法就ok了!

有两个方法:第一个是文本加图片显示的,第二个是纯文本显示的。

上代码。。。

 

public class ToastUtil {

    //显示文本+图片的Toast
    public static void showImageToas(Context context,String message){
        View toastview= LayoutInflater.from(context).inflate(R.layout.toast_image_layout,null);
        TextView text = (TextView) toastview.findViewById(R.id.tv_message);
        text.setText(message);    //要提示的文本
        Toast toast=new Toast(context);   //上下文
        toast.setGravity(Gravity.CENTER,0,0);   //位置居中
        toast.setDuration(Toast.LENGTH_SHORT);  //设置短暂提示
        toast.setView(toastview);   //把定义好的View布局设置到Toast里面
        toast.show();
    }
    //显示文本的Toast
    public static void showTextToas(Context context,String message){
        View toastview= LayoutInflater.from(context).inflate(R.layout.toast_text_layout,null);
        TextView text = (TextView) toastview.findViewById(R.id.tv_message);
        text.setText(message); 
        Toast toast=new Toast(context);
        toast.setGravity(Gravity.CENTER,0,0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(toastview);
        toast.show();
    }
}

 

图片+文本的布局代码 toast_image_layout.xml

 



    
    

 

纯文本的布局代码 toast_text_layout.xml

 



    

 

布局用到的背景需要自定义形状shape,在res文件下的drawable中new一个Drawable resource file,名称为bg_toast,贴上代码

 



    
    

 

走到这里就是万事具备!只差主帅点将了。好了,只需在需要的界面调用此方法就OK了。

 

ToastUtil.showImageToas(getApplicationContext(),"显示文本+图片");
ToastUtil.showTextToas(getApplicationContext(),"只显示文本");
 

如果以上觉得有帮到你的的话,点个赞。相信爱分享的人运气不会太差哦~

继承Toast也是可以的


public class ToastCustom extends Toast {
    private static Toast mToast;
    
    public ToastCustom(Context context) {
        super(context);
    }

    public static void  showToast(Context context, String content) {

        //获取系统的LayoutInflater
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.toast_layout, null);

        TextView tv_content = view.findViewById(R.id.tv_content);
        tv_content.setText(content);

        //实例化toast
        mToast = new Toast(context);
        mToast.setView(view);
        mToast.setDuration(Toast.LENGTH_SHORT);
        mToast.setGravity(Gravity.CENTER,0,0);
        mToast.show();
    }

}

toast_layout.xml




    


 bg_toast.xml



    
    

 

你可能感兴趣的:(Android)