Je sais à propos de set drawableRight in XML. mais je devais le faire par programme parce que c'est changer selon certaines conditions.
Vous pouvez utiliser la fonction ci-dessous:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
L'ordre des paramètres correspondant à l'emplacement dessinable est: gauche, haut, droite, bas
Trouver plus loin ici
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Vous pouvez également définir un rembourrage pouvant être dessiné par programme:
myEdit.setCompoundDrawablePadding("Padding value");
Essayez comme ci-dessous:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Modifier :
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Essayer:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Ensuite, vous pouvez ajouter un écouteur tactile à cet dessin spécifique.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Expliqué ici
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Définit les Drawables (le cas échéant) pour qu’ils apparaissent à gauche, en haut, à droite et en dessous du texte. Utilisez 0 si vous ne voulez pas de Drawable ici. Les limites des Drawables seront définies sur leurs limites intrinsèques.
Vous pouvez utiliser votre vue editText (ici txview) intégrée à la fonction setCompoundDrawablesWithIntrinsicBounds () pour faire ce que vous recherchez.
dans mon code, je l’utilisais comme ceci .. txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);
txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);
Pour changer à gauche et à droite, j'utilise cette seule ligne.
download.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_lock_open_white_24dp, 0, R.drawable.ic_lock_open_white_24dp, 0);
et_feedback.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,R.mipmap.feedback_new, 0, 0);
et_feedback.setTextColor(Color.BLACK);
}
});
Hide Drawable using this
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);
Si cela nécessite des graphismes Android, cela fonctionnera
Drawable dw = getApplicationContext().getResources().getDrawable(R.drawable.edit);
Button start = (Button)findViewById(R.id.buttonStart);
start.setCompoundDrawablesWithIntrinsicBounds(dw, null, null, null);