texto tamaño studio salto que mas linea letra hacer gruesa fuente edittext como cambiar caja alinear android android-edittext

tamaño - salto de linea edittext android



cambiar la fuente para la sugerencia editText (8)

Esta es una respuesta incorrecta a la pregunta. Intenté borrar pero no puedo excepto los moderadores. Por favor ignore la respuesta o siéntase libre de actualizar la respuesta. Esta respuesta es engañosa. Lo siento :).

editText.setTypeface(Typeface.SERIF);

Puede cambiar la fuente de EditText como TextView . Pero no puedes cambiar el tipo de letra de la hint .

¿Es posible cambiar la fuente de la sugerencia que se muestra en el campo EditText ? Quiero establecer la fuente en el propio xml.


Hay una forma muy sencilla de hacerlo. Acabo de hacerlo en mi aplicación y funcionó. La clave está configurada como Facetype de su TextInputLayout también junto con EditText.

mEmailView.setTypeface(Typeface.createFromAsset(getAssets(), getString(R.string.app_font))); ((TextInputLayout) findViewById(R.id.tilEmail)).setTypeface(Typeface.createFromAsset(getAssets(), getString(R.string.app_font)));


La respuesta de @ francisco_ssb es correcta. Sin embargo, proporcionaré una solución alternativa que ayuda a cambiar no solo la fuente de una pista, sino también su tamaño y estilo. Espero que esta solución sea de ayuda.

1) Crear un objeto Hint personalizado:

import android.graphics.Typeface; import android.text.SpannableString; import android.text.Spanned; import android.text.style.MetricAffectingSpan; public class CustomHint extends SpannableString { public CustomHint(final CharSequence source, final int style) { this(null, source, style, null); } public CustomHint(final CharSequence source, final Float size) { this(null, source, size); } public CustomHint(final CharSequence source, final int style, final Float size) { this(null, source, style, size); } public CustomHint(final Typeface typeface, final CharSequence source, final int style) { this(typeface, source, style, null); } public CustomHint(final Typeface typeface, final CharSequence source, final Float size) { this(typeface, source, null, size); } public CustomHint(final Typeface typeface, final CharSequence source, final Integer style, final Float size) { super(source); MetricAffectingSpan typefaceSpan = new CustomMetricAffectingSpan(typeface, style, size); setSpan(typefaceSpan, 0, source.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } }

2) Crear un objeto personalizado MetricAffectingSpan :

import android.graphics.Typeface; import android.text.TextPaint; import android.text.style.MetricAffectingSpan; public class CustomMetricAffectingSpan extends MetricAffectingSpan { private final Typeface _typeface; private final Float _newSize; private final Integer _newStyle; public CustomMetricAffectingSpan(Float size) { this(null, null, size); } public CustomMetricAffectingSpan(Float size, Integer style) { this(null, style, size); } public CustomMetricAffectingSpan(Typeface type, Integer style, Float size) { this._typeface = type; this._newStyle = style; this._newSize = size; } @Override public void updateDrawState(TextPaint ds) { applyNewSize(ds); } @Override public void updateMeasureState(TextPaint paint) { applyNewSize(paint); } private void applyNewSize(TextPaint paint) { if (this._newStyle != null) paint.setTypeface(Typeface.create(this._typeface, this._newStyle)); else paint.setTypeface(this._typeface); if (this._newSize != null) paint.setTextSize(this._newSize); } }

3) Uso:

Typeface newTypeface = Typeface.createFromAsset(getAssets(), "AguafinaScript-Regular.ttf"); CustomHint customHint = new CustomHint(newTypeface, "Enter some text", Typeface.BOLD_ITALIC, 60f); // CustomHint customHint = new CustomHint(newTypeface, "Enter some text", Typeface.BOLD_ITALIC); // CustomHint customHint = new CustomHint(newTypeface, "Enter some text", 60f); // CustomHint customHint = new CustomHint("Enter some text", Typeface.BOLD_ITALIC, 60f); // CustomHint customHint = new CustomHint("Enter some text", Typeface.BOLD_ITALIC); // CustomHint customHint = new CustomHint("Enter some text", 60f); customEditText.setHint(customHint);


No es posible en XML -

El texto y la sugerencia solo pueden tener la misma fuente en XML.


No he encontrado ninguna forma útil de cambiar la fuente de pistas en XML. Pero puedes lograrlo así:

mEt.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length()== 0) { //mEt.setTypeFace(normalFont); }else{ // mEt.setTypeFace(hintFont); } } @Override public void afterTextChanged(Editable s) { } });


Puedes cambiarlo con un SpannableString y un Custom TypefaceSpan.

Primero, crea una clase personalizada de TypefaceSpan:

public class CustomTypefaceSpan extends TypefaceSpan { private final Typeface mNewType; public CustomTypefaceSpan(Typeface type) { super(""); mNewType = type; } public CustomTypefaceSpan(String family, Typeface type) { super(family); mNewType = type; } @Override public void updateDrawState(TextPaint ds) { applyCustomTypeFace(ds, mNewType); } @Override public void updateMeasureState(TextPaint paint) { applyCustomTypeFace(paint, mNewType); } private static void applyCustomTypeFace(Paint paint, Typeface tf) { int oldStyle; Typeface old = paint.getTypeface(); if (old == null) { oldStyle = 0; } else { oldStyle = old.getStyle(); } int fake = oldStyle & ~tf.getStyle(); if ((fake & Typeface.BOLD) != 0) { paint.setFakeBoldText(true); } if ((fake & Typeface.ITALIC) != 0) { paint.setTextSkewX(-0.25f); } paint.setTypeface(tf); } }

Luego, simplemente configure el TypefaceSpan en una SpannableString:

TypefaceSpan typefaceSpan = new CustomTypefaceSpan(typeface); SpannableString spannableString = new SpannableString(hintText); spannableString.setSpan(typefaceSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

Y finalmente, simplemente establece la pista de tu EditText:

mEditText.setHint(spannableString);


Puedo cambiar la fuente de pistas usando esta library .

Después de compilar la biblioteca, debe crear una clase de aplicaciones y la siguiente definición de clase del comando:

CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("font.ttf") .setFontAttrId(R.attr.fontPath) .build() );

Después de cada actividad que desee, sustitúyala con el siguiente comando:

@Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); }


usa este código

edittext.setAccentTypeface(typeface);