自定義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
- Pypycharm修改程式碼字型大小及修改顏色PyCharm
- CSS 設定字型顏色和大小CSS
- Android中自定義Toast文字大小AndroidAST
- 調整Aplayer的歌詞顏色和字型大小顯示
- 直播系統原始碼,修改ToolBar的標題的字型顏色大小原始碼
- 直播系統app原始碼,TabLayout:自定義字型大小APP原始碼TabLayout自定義字型
- 修改SVG圖片的大小和顏色SVG
- markdown字型顏色和背景設定
- Flutter改變狀態列字型、狀態列背景顏色、Appbar背景顏色的方式FlutterAPP
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- Vue富文字帶圖片修改圖片大小自定義選擇項自定義字型Vue自定義字型
- Android 自定義Toast及BUGAndroidAST
- 直播帶貨系統原始碼利用TextView設定部分字型的顏色和大小原始碼TextView
- 小程式自定義swiper的指示點樣式及顏色
- ReactNative字型大小不隨系統字型大小變化而變化React
- 短視訊系統,不改變背景顏色的基礎上更改邊框和字型顏色
- 選中按鈕改變文字大小和顏色
- 利用CAGradientLayer自定義顏色漸變viewView
- CSS 顏色與字型CSS
- Android中TabLayout修改字型大小AndroidTabLayout
- Spring tool suite修改字型大小SpringUI
- em字型大小參考物件物件
- 如何調整Pycharm字型大小PyCharm
- IDEA-idea設定導航欄字型大小程式碼編輯區字型大小Idea
- echarts調節字型顏色Echarts
- Markdown(入門)——文字設定 ->(字型、字號、顏色和背景色)
- win10電腦字型大小怎麼設定_win10如何設定字型大小Win10
- mui toast自定義樣式UIAST
- 自定義Toast樣式+改變Toast寬高AST
- vue專案中使用svg並設定大小顏色等樣式VueSVG
- CSS 中的顏色、背景和剪下CSS
- CSS設定元素的背景顏色CSS
- [C++] 自定義C++比較器比較大小C++
- 在Mac裡給Terminal終端自定義顏色Mac
- 小程式中 icon 顏色自定義解決方案
- Pycharm-Pycharm設定左側導航欄字型大小和程式碼編輯區字型大小PyCharm
- VC 對話方塊背景顏色、控制元件顏色控制元件