日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Android自定義Toast樣式實現(xiàn)方法詳解_Android

作者:FranzLiszt1847 ? 更新時間: 2023-03-13 編程語言

原生Toast樣式

自定義Toast樣式

創(chuàng)建樣式

所謂自定義一個Toast就是建立一個布局文件,然后使用一個view容器承載,然后顯示出來。Toast畢竟只是起到一個提示作用,不必要放太多控件去填充,反而會顯得內(nèi)容很擁擠,一般一個標(biāo)題,一張圖片,一段簡短文字即可。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/white_radius_10">
    <LinearLayout
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:gravity="center"
        android:orientation="vertical"
        android:layout_gravity="center">
        <ImageView
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/icon_error" />
        <TextView
            android:id="@+id/ErrorTips"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="密碼錯誤,請重試!"
            android:textColor="#099A9F"
            android:textSize="15sp"
            android:ellipsize="end"/>
    </LinearLayout>
</FrameLayout>

封裝

因為我們在開發(fā)中需要頻繁使用Toast,所以使用一個類將其封裝起來,復(fù)用其功能,增強代碼可讀性,可行性。根據(jù)自己的開發(fā)需求,可以向外暴露修改內(nèi)容,圖片,顏色,文字大小等方法,由于Toast內(nèi)附控件較少,就可以直接將其控件ID和布局文件定義為常量引用。

public class ToastFormat {
    private Context context;
    private TextView tipsText;
    private Toast toast = null;
    private static final int ContentID = R.id.ErrorTips;
    private static final int LayoutID = R.layout.passworderror;
    public ToastFormat(Context context){
        this.context = context;
    }
    public void InitToast(){
        if (toast == null) {
            toast = new Toast(context);
            View view = LayoutInflater.from(context).inflate(LayoutID, null, false);
            tipsText = view.findViewById(ContentID);
            toast.setView(view);
        }
    }
    public void setGravity(int gravity){
        toast.setGravity(gravity, 0, 0);
    }
    public void setText(String tips){
        tipsText.setText(tips);
    }
    public void show(){
        toast.show();
    }
    public void setShowTime(int time){
        toast.setDuration(time);
    }
    public void setTextColor(int color){
        tipsText.setTextColor(context.getResources().getColor(color));
    }
    public void setTextSize(float size){
        tipsText.setTextSize(size);
    }
}

引用

定義對象

private ToastFormat format;

初始化

format = new ToastFormat(MainActivity.this);
format.InitToast();

設(shè)置顯示文字內(nèi)容

format.setText("自定義Toast");

最后顯示 Toast

format.show();

原文鏈接:https://blog.csdn.net/News53231323/article/details/123968086

欄目分類
最近更新