Android-自定义Toast

新一
2022-08-18 / 0 评论 / 167 阅读 / 正在检测是否收录...

效果图

l6ys8hn7.png

CommonToast

package com.element.wisdomclassbrand.util;

import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.element.wisdomclassbrand.R;

public enum CommonToast {
    INSTANCE;// 实现单例
    private Toast mToast;
    private TextView mTvToast;
    public void showToast(Context ctx, String content) {
        if (mToast == null) {
            mToast = new Toast(ctx);
            mToast.setGravity(Gravity.CENTER, 0, 0);//设置toast显示的位置,这是居中
            mToast.setDuration(Toast.LENGTH_SHORT);//设置toast显示的时长
            View _root = LayoutInflater.from(ctx).inflate(R.layout.toast_common, null);//自定义样式,自定义布局文件
            mTvToast = _root.findViewById(R.id.toast_common);
            mToast.setView(_root);//设置自定义的view
        }
        mTvToast.setText(content);//设置文本
        mToast.show();//展示toast
    }
    public void showToast(Context ctx, int stringId) {
        showToast(ctx, ctx.getString(stringId));
    }
    public void cancelToast() {
        if (mToast != null) {
            mToast.cancel();
            mToast = null;
            mTvToast = null;
        }
    }

}

布局代码

l6ysasnw.png

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="39dp"
    android:paddingRight="39dp"
    android:paddingBottom="16dp"
    android:paddingTop="16dp"
    android:background="@drawable/toast_common_bg">

    <ImageView
        android:id="@+id/tick_icon"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:src="@mipmap/tick_icon"
        android:layout_marginRight="20dp"
        />

    <TextView
        android:id="@+id/toast_common"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tick_icon"
        android:textColor="#FFFFFF"
        android:textSize="@dimen/font_size_28_sp" />
</RelativeLayout>

调用

l6ysbbwj.png

本文共 58 个字数,平均阅读时长 ≈ 1分钟
0

打赏

:D 获取中...

更多精彩文章,按Ctrl+D收藏本站!

评论 (0)

取消