在Android開發中,Toast是一種輕量級的提示框,用於在螢幕上顯示臨時訊息。一般情況下,Toast顯示的文字大小是固定的,無法直接改變。但是,我們可以透過一些方法來實現在Toast中顯示不同大小的文字。
方法一: 使用自定義佈局
建立custom_toast.xml佈局檔案,如:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <!-- android:background="@drawable/toast_background"--> <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="18sp" /> </LinearLayout>
java程式碼:
public static void showToastWithCustomSize(Context context, String message, int textSize) { // 載入自定義Toast佈局 LayoutInflater inflater = LayoutInflater.from(context); View layout = inflater.inflate(com.xzh.cssmartandroid.R.layout.custom_toast, null); // 設定TextView的字型大小 TextView textView = layout.findViewById(com.xzh.cssmartandroid.R.id.text_view); textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize); textView.setText(message); // 建立並顯示Toast Toast toast = new Toast(context); toast.setGravity(Gravity.BOTTOM, 0, 0); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); }
方法二:使用SpannableString
public static void showToast(Context context, String message, int textSize){ SpannableString spannableString = new SpannableString(message); spannableString.setSpan(new AbsoluteSizeSpan(textSize,true),0,spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); Toast.makeText(context,spannableString,Toast.LENGTH_SHORT).show(); }
以上兩種方法就可以實現改變Toast文字大小了
封裝
/** * 自定義Toast文字大小 */ public class ToastUtils { /** * 方法1 * @param context * @param message * @param textSize */ public static void showToastWithCustomSize(Context context, String message, int textSize) { // 載入自定義Toast佈局 LayoutInflater inflater = LayoutInflater.from(context); View layout = inflater.inflate(com.xzh.cssmartandroid.R.layout.custom_toast, null); // 設定TextView的字型大小 TextView textView = layout.findViewById(com.xzh.cssmartandroid.R.id.text_view); textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize); textView.setText(message); // 建立並顯示Toast Toast toast = new Toast(context); toast.setGravity(Gravity.BOTTOM, 0, 0); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); } /** * 方法2 * @param context * @param message * @param textSize */ public static void showToast(Context context, String message, int textSize){ SpannableString spannableString = new SpannableString(message); spannableString.setSpan(new AbsoluteSizeSpan(textSize,true),0,spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); Toast.makeText(context,spannableString,Toast.LENGTH_SHORT).show(); } }