Android EditText Hint Size

Cómo reducir el tamaño de la EditText ?

Puede hacerlo estableciendo un tamaño en el recource de cadena.

Por ejemplo:

 Hint here! 

entonces en tu XML solo escribe

 android:hint="@string/edittext_hint" 

Esto resucitará en un texto más pequeño para la sugerencia pero el tamaño original para el texto de entrada.

Espera que esto ayude a los futuros lectores

Puede reducir el tamaño de fuente en EditText , lo que reducirá el tamaño de la hint también. es decir, android:textSize="16sp"

También tuve que hacer esto ya que mi pista no encajaba en EditText en el tamaño estándar. Así que hice esto (en el conjunto xml textSize to mHintTextSize):

 MYEditText.addTextChangedListener(new TextWatcher(){ @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence arg0, int start, int before, int count) { if (arg0.length() == 0) { // No entered text so will show hint editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, mHintTextSize); } else { editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, mRealTextSize); } } }); 

Puede establecer atributos HTML simples para la cadena de sugerencias en sí.

Ver respuesta aceptada aquí: Android EditText sugerencia

EDITAR: acabo de jugar con él, esto funcionó para mí:

 view.setHint(Html.fromHtml("" + getString(R.string.hint) + "")); 

Esta es una lista de tags aceptadas por fromHtml: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html (aunque no funcionó para mí)

es fácil reducir el tamaño de sugerencia del texto de edición

 editText.setHint(Html.fromHtml( "" + "hinttext1" + "" + "" + "hinttext2" + "" )); 

Si quieres hacerlo programáticamente,

 SpannableString span = new SpannableString(strHint); span.setSpan(new RelativeSizeSpan(0.5f), 0, strHint.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); editText.setHint(span); 

El enfoque de @marmor es el mejor. Puede modificar el número de tags --- para ajustar el tamaño.

También puede definir el texto de Hint directamente como lo hice

view.setHint(Html.fromHtml("" + "This is Hint" + ""));

Espero que esto ayude

La solución de @ user2982553 funciona muy bien para mí. También puede usar AbsoluteSizeSpan , con el que puede establecer el tamaño de fuente exacto de la sugerencia. No use etiqueta, porque el atributo de size simplemente se ignora.

Necesito establecer un tamaño mayor para texto real que sugerencia.

 public static class LargeSizeTextWatcher implements TextWatcher { private final EditText mEditText; private final int mOriginalSize; private final int mLargeSize; private int mLastLength; TrackingNumberTextWatcher(EditText editText) { mEditText = editText; mOriginalSize = (int) editText.getTextSize(); mLargeSize = editText.getResources().getDimensionPixelSize(R.dimen.text_size_large); mLastLength = editText.length(); if (mLastLength != 0) { mEditText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mLargeSize); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { int length = s.length(); if (length == 0) { mEditText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mOriginalSize); } else if (mLastLength == 0) { mEditText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mLargeSize); } mLastLength = length; } } 

Puede cambiar no solo el tamaño de una sugerencia, sino también su fuente y estilo. SpannableString resolverlo usando SpannableString y MetricAffectingSpan

1) Crea un objeto personalizado Hint :

 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 MetricAffectingSpan personalizado:

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