Conosco set drawableRight in XML. ma ho richiesto di farlo a livello di programmazione perché è cambiato secondo alcune condizioni.
Conosco set drawableRight in XML. ma ho richiesto di farlo a livello di programmazione perché è cambiato secondo alcune condizioni.
Risposte:
È possibile utilizzare la funzione di seguito:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
oppure (se vuoi passare il drawable stesso invece del suo ID)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
L'ordine dei parametri corrispondenti alla posizione disegnabile è: sinistra, in alto, a destra, in basso
Trova ulteriori qui
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Puoi anche impostare il riempimento disegnabile a livello di codice:
myEdit.setCompoundDrawablePadding("Padding value");
Prova come di seguito:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Modificare :
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Provare:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Quindi puoi aggiungere un ascoltatore tattile a quel disegno specifico.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Spiegato qui
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Imposta i Drawable (se presenti) in modo che appaiano a sinistra, sopra, a destra e sotto il testo. Usa 0 se non vuoi un Drawable lì. I limiti dei Drawable saranno impostati sui loro limiti intrinseci.
Puoi usare la tua vista editText (qui è txview) incorporata nella funzione setCompoundDrawablesWithIntrinsicBounds () per fare quello che stai cercando
nel mio codice l'ho usato così. txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);
txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);
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);
}
});
Nascondi Drawable usando questo
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);