在Android中更改EditText的字体?

Wil*_* L. 27 fonts android typeface android-edittext

有没有办法在Android中更改EditText的字体?我希望它匹配我为所有textViews设置的字体.

Sam*_*iya 38

 editText.setTypeface(Typeface.SERIF); 
Run Code Online (Sandbox Code Playgroud)

就像TextView一样.

 <TextView
  ...
     android:typeface="serif"
  ... />
Run Code Online (Sandbox Code Playgroud)

编辑:上面是XML


Sha*_*wal 26

Solution1 ::只需将父视图作为参数传递,即可调用这些方法.

private void overrideFonts(final Context context, final View v) {
    try {
        if (v instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) v;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View child = vg.getChildAt(i);
                overrideFonts(context, child);
         }
        } else if (v instanceof EditText) {
            ((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(), "font.ttf"));
        }
    } catch (Exception e) {
 }
}
Run Code Online (Sandbox Code Playgroud)

Solution2 ::您可以使用自定义字体继承TextView类,并使用它而不是textview.

public class MyEditView extends EditText{

    public MyEditView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

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

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

    private void init() {
        if (!isInEditMode()) {
            Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font.ttf");
            setTypeface(tf);
        }
    }

 }
Run Code Online (Sandbox Code Playgroud)


Sar*_*ara 9

assets文件夹上创建一个fonts文件夹并将你的.ttf字体文件放入onCreate()函数中写入:

EditText editText =(EditText)findViewById(R.id.insert_yors_edit_text_layout);
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/yours_font.ttf"); 
editText.setTypeface(type);
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以在最新版本的 Android studio 3 中的 res 目录下创建字体文件夹。然后将您的字体复制并粘贴到字体文件夹中。现在只需添加fontFamilyEditText标记 xml。

像下面。

        <EditText
            android:id="@+id/subject"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/headerShare"
            android:layout_marginBottom="5dp"
            android:layout_marginEnd="16dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"
            android:background="@drawable/edittext_bg"
            android:fontFamily="@font/ritaric"
            android:gravity="start"
            android:hint="Subject"
            android:inputType="text"
            android:maxHeight="50dp"
            android:padding="16dp"
            android:textColor="@color/black"
            android:textColorHint="@color/black"
            android:textSize="@dimen/colors_textview_size" />
Run Code Online (Sandbox Code Playgroud)

我们android:fontFamily="@font/ritaric"用于在 EditText 上应用字体。