2 votes

Android : comment redimensionner un texte dans un EditText ?

J'ai un EditText . J'aimerais redimensionner le texte à l'intérieur de l'écran de l'utilisateur. EditText si la longueur du texte est supérieure à 10, par exemple.

Comment faire ?

Merci. J'apprécie !

3voto

cosmincalistru Points 1243

Cela devrait faire l'affaire :

final EditText et = (EditText) findViewById(R.id.editTextId);
et.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(et.getText().length()>10) {
            et.setTextSize(newValue);
        } else {
            et.setTextSize(oldValue);
        }
        return false;
    }
});

2voto

fiddler Points 7421

Vous préférerez peut-être utiliser un TextWatcher plutôt qu'un OnKeyListener (qui cible évidemment les touches matérielles) :

    final float size1 = 30, size2 = 15;

    final EditText edit = new EditText(this);
    edit.setTextSize(size1);

    edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if(s.length() > 10) {
                edit.setTextSize(size2);
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

0voto

Tuna Karakasoglu Points 1132

Essayez, s'il vous plaît :

if(myEditText.getText().toString().lenght() > 10)
{
        myEditText.setTextSize(6);
} 
else 
{
        myEditText.setTextSize(10);
}

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