it-swarm.com.de

Schriftart für EditText in Android ändern?

Gibt es eine Möglichkeit, die Schriftart für einen EditText in Android zu ändern? Ich möchte, dass sie mit der Schriftart übereinstimmt, die ich für alle meine Textansichten festgelegt habe. 

24
William L.
 editText.setTypeface(Typeface.SERIF); 

So wie bei TextView.

 <TextView
  ...
     Android:typeface="serif"
  ... />

Edit: Oben ist das XML

36

Solution1 :: Rufen Sie diese Methode einfach auf, indem Sie die übergeordnete Ansicht als Argument übergeben.

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) {
 }
}

Lösung2 :: Sie können die TextView-Klasse mit Ihrer benutzerdefinierten Schriftart unterteilen und sie anstelle von Textview verwenden.

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);
        }
    }

 }
26
Shankar Agarwal

Erstellen Sie einen Ordner " fonts " im Ordner " assets " und fügen Sie Ihre .ttf-Schriftartdatei ein. Schreiben Sie dann in die Funktion onCreate ():

EditText editText =(EditText)findViewById(R.id.insert_yors_edit_text_layout);
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/yours_font.ttf"); 
editText.setTypeface(type);
8
Sara

Sie können den Ordner font im Verzeichnis res in der letzten Version Android studio 3. Kopieren Sie die Schrift und fügen Sie sie in den Ordner font ein Fügen Sie nun einfach fontFamily zu EditText tag xml hinzu.

wie unten.

        <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" />

Wir gebrauchen Android:fontFamily="@font/ritaric" zum Anwenden einer Schriftart auf EditText.

3
sirvan alie
void setFont(Context context, ViewGroup vg)
        {
          final String FONT_NAME = "lato_bold.ttf";
            for (int i = 0; i < vg.getChildCount(); i++)
                {
                    View v = vg.getChildAt(i);
                    if (v instanceof ViewGroup)
                        setFont(context, (ViewGroup) v);
                    else if (v instanceof TextView)
                        {
                            ((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(), FONT_NAME ));
                        }
                    else if (v instanceof EditText)
                        {
                            ((EditText) v).setTypeface(Typeface.createFromAsset(context.getAssets(), FONT_NAME ));
                        }
                    else if (v instanceof Button)
                        {
                            ((Button) v).setTypeface(Typeface.createFromAsset(context.getAssets(), FONT_NAME ));
                        }
                    else if (v instanceof CheckBox)
                        {
                            ((CheckBox) v).setTypeface(Typeface.createFromAsset(context.getAssets(), FONT_NAME ));
                        }
                    else if (v instanceof RadioButton)
                        {
                            ((RadioButton) v).setTypeface(Typeface.createFromAsset(context.getAssets(), FONT_NAME ));
                        }
                }
        }

Rufen Sie in Ihrer Aktivität oder im Fragment das Hauptlayout auf 

Inflater inflater = (Inflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//For Activity
//Inflater inflater = (Inflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.main_fragment, container, false);
//For Activity
//View v = inflater.inflate(R.layout.signup_fragment, null, false);
if (v instanceof ViewGroup)
    {
      setFont(getActivity(), (ViewGroup) v);
      //For Activity
     //setFont(this, (ViewGroup) v);
    }
1
Ishtiaq

Erste Methode

verwenden Sie diesen Code in Ihrer Java-Klasse 

    EditText et_brand=(EditText)findViewById(R.id.et_brand);
    et_brand.setTypeface(Typeface.createFromAsset(getAssets(),"Aspergit Bold.ttf")); 
    //Aspergit Bold.ttf is Font style name of text

Zweite Methode

  1. Erstellen Sie eine neue Java-Klasse 

    public class CustomTextView extends TextView {
    
    public CustomTextView(Context context, AttributeSet attrs, int defStyle) 
    {
    super(context, attrs, defStyle);
    init();
    }
    
    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    init();
    }
    
    public CustomTextView(Context context) {
    super(context);
    init();
    }
    
    private void init() {
       Typeface tf = Typeface.createFromAsset(getContext().getAssets(), 
    "Aspergit Bold.ttf");
    setTypeface(tf);
    }
    }
    
  2. Verwenden Sie es in Ihrer XML-Datei 

                  <YourPackageNAme.CustomEditText
                   Android:layout_width="wrap_content"
                   Android:layout_height="wrap_content"
                   Android:background="@null"/>
    
0
Sunil

Fügen Sie diesen Code in Ihre Java-Datei ein Welche Art Sie möchten, wie NORMAL, ITALIC, BOLD, BOLD_ITALIC.

edittext.setTypeface (null, Typeface.ITALIC);

0
bAdmAn