自定義toast外形,多次點擊不會總是彈出toast的實現(xiàn)方法
效果如下所示:

我封裝了一個類出來:
package com.amt.appstore.widgets;
import com.amt.appstore.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class CustomerToast {
static Toast toast;
public static void showToast(Context context, String content) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.toast_custome, null);
TextView tv = (TextView) view.findViewById(R.id.text);
tv.setText(content);
//防止多次點擊按鈕出現(xiàn)很多toast一直不消失
if (toast != null) {
toast.setView(view);
} else {
toast = new Toast(context);
toast.setView(view);
toast.setDuration(Toast.LENGTH_SHORT);
}
toast.show();
}
}
toast_custome里的代碼如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/selected_etoast_background" >
<ImageView
android:id="@+id/toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:layout_marginTop="10dp"
android:src="@drawable/toast" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/toast"
android:text="請先選擇類別"
android:textColor="@color/white"
android:textSize="24sp" />
<TextView
android:layout_width="10dp"
android:layout_height="5dp"
android:layout_toRightOf="@id/text" />
<TextView
android:layout_width="wrap_content"
android:layout_height="5dp"
android:layout_below="@id/text" />
</RelativeLayout>
下面的兩個TextView是分別讓toast變寬一些,和變高一些,這樣會好看一些。
在drawable/selected_etoast_background里的代碼如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 內(nèi)部顏色 -->
<solid android:color="@color/black" />
<!-- 邊緣線條顏色 -->
<stroke
android:width="1dp"
android:color="#00ffde" />
<!-- 圓角的幅度 -->
<corners
android:radius="1dp" />
</shape>
上面的感嘆號圖片,如下所示:

這樣在Activity里用的時候,如下代碼所示:
CustomerToast.showToast(AppWallActivity.this, "請先選擇類型!");
結(jié)束。
以上這篇自定義toast外形,多次點擊不會總是彈出toast的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義View實現(xiàn)帶4圓角或者2圓角的效果
這篇文章主要介紹了Android自定義View實現(xiàn)帶4圓角或者2圓角的效果,本文通過實例代碼截圖給大家展示的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Android SurfaceView與TextureView使用方法詳細(xì)講解
SurfaceView和TextureView都繼承View,與普通的View不同的是,它倆可以在獨立線程中繪制渲染,性能更高,所以常被應(yīng)用在對繪制速率要求比較高的場景,比如相機預(yù)覽,視頻播放等等2022-10-10
Android應(yīng)用內(nèi)存優(yōu)化指南
內(nèi)存優(yōu)化是提升 Android 應(yīng)用性能和用戶體驗的關(guān)鍵環(huán)節(jié),內(nèi)存泄漏、內(nèi)存抖動、不合理的數(shù)據(jù)結(jié)構(gòu)或資源占用等問題都可能導(dǎo)致應(yīng)用卡頓、崩潰或后臺被殺,本文從常見問題場景、優(yōu)化方案、工具使用和最佳實踐四個方面深入解析,需要的朋友可以參考下2025-03-03
Kotlin語言使用BroadcastReceiver示例介紹
Android開發(fā)的四大組件分別是:活動(activity),用于表現(xiàn)功能;服務(wù)(service),后臺運行服務(wù),不提供界面呈現(xiàn);廣播接受者(Broadcast Receive),勇于接收廣播;內(nèi)容提供者(Content Provider),支持多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫,本篇著重介紹廣播組件2022-09-09
Github簡單易用的?Android?ViewModel?Retrofit框架
這篇文章主要介紹了Github簡單易用的Android?ViewModel?Retrofit框架,RequestViewMode有自動對LiveData進(jìn)行緩存管理,每個retrofit api接口復(fù)用一個livedata的優(yōu)勢。下文具體詳情,感興趣的小伙伴可以參考一下2022-06-06

