92 votes

Taille de l'indice EditText d'Android

Comment réduire EditText Taille de l'indice ?

137voto

Jeka Points 1434

Vous pouvez le faire en définissant une taille dans la recource de la chaîne.

Par exemple :

<string name="edittext_hint"><font size="15">Hint here!</font></string>

puis dans votre XML, écrivez simplement

android:hint="@string/edittext_hint"

Le résultat sera un texte plus petit pour l'indice mais la taille originale pour le texte d'entrée.

J'espère que cela aidera les futurs lecteurs

61voto

inky Points 604

Vous pouvez réduire la taille de la police sur le EditText - qui réduira la taille de la hint également, c'est-à-dire android:textSize="16sp"

38voto

longhairedsi Points 1514

J'ai également dû procéder de la sorte car mon indice ne tenait pas dans l'EditText à la taille standard. J'ai donc fait ceci (dans le xml, j'ai défini textSize à 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);
                    }
                }
        });

31voto

marmor Points 4559

Vous pouvez définir des attributs HTML simples pour la chaîne d'indices elle-même.

Voir la réponse acceptée ici : Indication de l'EditText d'Android

EDIT : je viens de jouer avec moi-même, cela a fonctionné pour moi :

view.setHint(Html.fromHtml("<small><small><small>" + 
             getString(R.string.hint) + "</small></small></small>"));

Il s'agit d'une liste de balises acceptées par fromHtml : http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html (bien que cela n'ait pas fonctionné pour moi)

13voto

user2982553 Points 51

Si vous voulez le faire de manière programmatique,

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X