91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EditText的文本輸入與動態字體大小調整

發布時間:2024-08-31 19:11:32 來源:億速云 閱讀:95 作者:小樊 欄目:移動開發

在Android應用中,您可以通過以下方法實現EditText的文本輸入和動態字體大小調整:

  1. 在XML布局文件中添加EditText控件:
<EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:gravity="top"
    android:lines="5"
    android:scrollbars="vertical" />
  1. 在Activity或Fragment中創建一個自定義EditText類,繼承自AppCompatEditText:
import android.content.Context;
import android.util.AttributeSet;
import androidx.appcompat.widget.AppCompatEditText;

public class DynamicFontSizeEditText extends AppCompatEditText {

    public DynamicFontSizeEditText(Context context) {
        super(context);
        init();
    }

    public DynamicFontSizeEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public DynamicFontSizeEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        // 設置監聽器以檢測文本變化
        setOnTextChangedListener(new OnTextChangedListener() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                adjustFontSize(s.length());
            }
        });
    }

    private void adjustFontSize(int textLength) {
        // 根據文本長度設置字體大小
        float fontSize = 18; // 默認字體大小
        if (textLength > 10) {
            fontSize = 14;
        }
        if (textLength > 20) {
            fontSize = 12;
        }
        setFontSize(fontSize);
    }

    public void setFontSize(float fontSize) {
        if (fontSize > 0) {
            setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);
            setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);
            setFontFamily(null);
            setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, null, null);
            setSpannableString(getText());
            setSpan(new AbsoluteSizeSpan(fontSize), 0, getLength(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        } else {
            setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_MULTI_LINE);
            setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_MULTI_LINE);
            setFontFamily(null);
            setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, null, null);
            setText(getSpannedString());
        }
    }
}
  1. 在XML布局文件中使用自定義的DynamicFontSizeEditText控件:
<com.example.yourapp.DynamicFontSizeEditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:gravity="top"
    android:lines="5"
    android:scrollbars="vertical" />

現在,當您在DynamicFontSizeEditText中輸入文本時,字體大小會根據文本長度動態調整。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

维西| 临泉县| 凤山县| 正蓝旗| 辽宁省| 巢湖市| 湖州市| 镇原县| 凤山县| 保定市| 马关县| 三都| 淮安市| 贵德县| 高碑店市| 成武县| 保康县| 芒康县| 井陉县| 西乌珠穆沁旗| 家居| 介休市| 赤城县| 镇赉县| 龙陵县| 会东县| 绥宁县| 遂昌县| 台中县| 衡东县| 汾西县| 简阳市| 扬中市| 元阳县| 铁岭市| 若尔盖县| 闽清县| 灵寿县| 上林县| 寻乌县| 墨竹工卡县|