自定義Toast的背景顏色大小及字型大小
參考文章 原文連結:http://download.csdn.net/detail/u010566681/9612322
文章內容的核心思路是通過Toast類的getView方法獲取到Toast的View,通過得到的view.findbyid查詢安卓系統為Toast定義的TextView資源(android.R.id.message)。
而後針對TextView類進行操作即可。
更新程式碼也封裝進了原作者的ToastUtil類中,使用時首先通過
ToastUtil toastUtil = new ToastUtil(); //建立toastUtil物件
toastUtil.Short(context,getResources().getString(id)) //呼叫Short方法傳入提示內容
.setToastBackground(Color.WHITE,R.drawable.toast_radius) //呼叫原文的setToastBackground方法設定顏色及背景
.setToastSize(400,200,24).show(); //呼叫新增的setToastSize設定Toast的寬,高及字型大小。
對比原來的類增加設定Toast大小及字型大小的類:
'''
/*
* 設定Toast大小
* */
public ToastUtil setToastSize(int width,int height,int textSize){
View view = toast.getView();
if(view != null){
TextView message = view.findViewById(android.R.id.message);
message.setWidth(width);
message.setHeight(height);
message.setGravity(Gravity.CENTER);
if(textSize<20)
message.setTextSize(20);
else
message.setTextSize(textSize);
// message.setAutoSizeTextTypeWithDefaults(AUTO_SIZE_TEXT_TYPE_UNIFORM);
}
return this;
}
'''
完整類程式碼如下:
'''
package com.telecom.geoquiz;
/**
* Created by apple on 16/8/24.
*/
import android.content.Context;
import android.graphics.Color;
import android.graphics.fonts.FontVariationAxis;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import static android.widget.TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM;
/**
* 作者:ban on 16/8/24 17:55
*/
public class ToastUtil {
private Toast toast;
private LinearLayout toastView;
/**
* 修改原佈局的Toast
*/
public ToastUtil() {
}
/**
* 完全自定義佈局Toast
*
* @param context
* @param view
*/
public ToastUtil(Context context, View view, int duration) {
toast = new Toast(context);
toast.setView(view);
toast.setDuration(duration);
}
/**
* 向Toast中新增自定義view
*
* @param view
* @param postion
* @return
*/
public ToastUtil addView(View view, int postion) {
toastView = (LinearLayout) toast.getView();
toastView.addView(view, postion);
return this;
}
/**
* 設定Toast字型及背景顏色
*
* @param messageColor
* @param backgroundColor
* @return
*/
public ToastUtil setToastColor(int messageColor, int backgroundColor) {
View view = toast.getView();
//設定Toast背景顏色為透明
view.setBackgroundColor(Color.TRANSPARENT);
if (view != null) {
TextView message = ((TextView) view.findViewById(android.R.id.message));
message.setBackgroundColor(backgroundColor);
message.setTextColor(messageColor);
}
return this;
}
/**
* 設定Toast字型顏色及背景
*
* @param messageColor
* @param background
* @return
*/
public ToastUtil setToastBackground(int messageColor, int background) {
View view = toast.getView();
//設定Toast背景顏色為透明
view.setBackgroundColor(Color.TRANSPARENT);
if (view != null) {
TextView message = ((TextView) view.findViewById(android.R.id.message));
message.setBackgroundResource(background);
message.setTextColor(messageColor);
}
return this;
}
/*
* 設定Toast大小
* */
public ToastUtil setToastSize(int width,int height,int textSize){
View view = toast.getView();
if(view != null){
TextView message = view.findViewById(android.R.id.message);
message.setWidth(width);
message.setHeight(height);
message.setGravity(Gravity.CENTER);
if(textSize<20)
message.setTextSize(20);
else
message.setTextSize(textSize);
// message.setAutoSizeTextTypeWithDefaults(AUTO_SIZE_TEXT_TYPE_UNIFORM);
}
return this;
}
/**
* 短時間顯示Toast
*/
public ToastUtil Short(Context context, CharSequence message) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(Toast.LENGTH_SHORT);
}
return this;
}
/**
* 短時間顯示Toast
*/
public ToastUtil Short(Context context, int message) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(Toast.LENGTH_SHORT);
}
return this;
}
/**
* 長時間顯示Toast
*/
public ToastUtil Long(Context context, CharSequence message) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, Toast.LENGTH_LONG);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(Toast.LENGTH_LONG);
}
return this;
}
/**
* 長時間顯示Toast
*
* @param context
* @param message
*/
public ToastUtil Long(Context context, int message) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, Toast.LENGTH_LONG);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(Toast.LENGTH_LONG);
}
return this;
}
/**
* 自定義顯示Toast時間
*
* @param context
* @param message
* @param duration
*/
public ToastUtil Indefinite(Context context, CharSequence message, int duration) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, duration);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(duration);
}
return this;
}
/**
* 自定義顯示Toast時間
*
* @param context
* @param message
* @param duration
*/
public ToastUtil Indefinite(Context context, int message, int duration) {
if (toast == null || (toastView != null && toastView.getChildCount() > 1)) {
toast = Toast.makeText(context, message, duration);
toastView = null;
} else {
toast.setText(message);
toast.setDuration(duration);
}
return this;
}
/**
* 顯示Toast
*
* @return
*/
public ToastUtil show() {
toast.show();
return this;
}
/**
* 獲取Toast
*
* @return
*/
public Toast getToast() {
return toast;
}
}
'''
相關文章
- 設定toast的字型顏色和背景顏色AST
- Android自定義邊框背景顏色的ToastAndroidAST
- Pypycharm修改程式碼字型大小及修改顏色PyCharm
- CSS 設定字型顏色和大小CSS
- 設定Toast字型顏色AST
- Android中自定義特定顏色的ToastAndroidAST
- Android中自定義Toast文字大小AndroidAST
- Mac的QQ如何設定字型大小和顏色Mac
- Win10如何更改CMD命令視窗顏色及字型大小Win10
- 自定義chrome的輸入框背景顏色Chrome
- 調整Aplayer的歌詞顏色和字型大小顯示
- 直播系統原始碼,修改ToolBar的標題的字型顏色大小原始碼
- 直播系統app原始碼,TabLayout:自定義字型大小APP原始碼TabLayout自定義字型
- markdown字型顏色和背景設定
- 修改SVG圖片的大小和顏色SVG
- Flutter改變狀態列字型、狀態列背景顏色、Appbar背景顏色的方式FlutterAPP
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- Vue富文字帶圖片修改圖片大小自定義選擇項自定義字型Vue自定義字型
- 直播帶貨系統原始碼利用TextView設定部分字型的顏色和大小原始碼TextView
- Android-重新包裝Toast,自定義背景AndroidAST
- Android 自定義Toast及BUGAndroidAST
- 小程式自定義swiper的指示點樣式及顏色
- Android Toast 自定義背景、圖片 隨心使用AndroidAST
- 自定義ToastAST
- JavaScript控制字型大小JavaScript
- iOS專案開發實戰——自定義控制元件背景與顏色iOS控制元件
- Android 自定義View 字型變色AndroidView
- 短視訊系統,不改變背景顏色的基礎上更改邊框和字型顏色
- eclipse中的漢字橫著顯示,或顯示不正確,字型大小顏色設定Eclipse
- Win10系統下滑鼠指標大小及顏色的設定步驟Win10指標
- TextView設定部分或指定背景色和字型顏色TextView
- 選中按鈕改變文字大小和顏色
- 自定義Toast及視窗透明處理AST
- 修改UITabBarItem字型顏色UItabBar
- CSS 顏色與字型CSS
- UIColor 自定義 16進位制顏色UI
- Devexpress 報表 自定義紙張大小devExpress
- win10滑鼠指標大小和顏色的設定方法Win10指標