Sé acerca de set drawableRight en XML. pero necesitaba hacerlo programáticamente porque se cambia según alguna condición.
Sé acerca de set drawableRight en XML. pero necesitaba hacerlo programáticamente porque se cambia según alguna condición.
Respuestas:
Puede utilizar la siguiente función:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
o (si desea pasar el dibujable en lugar de su ID)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
El orden de los parámetros correspondientes a la ubicación dibujable es: izquierda, arriba, derecha, abajo
Encuentra más aquí
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
También puede establecer el relleno dibujable mediante programación:
myEdit.setCompoundDrawablePadding("Padding value");
Prueba como a continuación:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Editar:
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Tratar:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Luego, puede agregar un oyente táctil a ese dibujable específico.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Explicado aquí
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Establece los elementos de diseño (si los hay) para que aparezcan a la izquierda, arriba, a la derecha y debajo del texto. Use 0 si no quiere un Drawable allí. Los límites de los Drawables se establecerán en sus límites intrínsecos.
Puede usar su vista editText (aquí es txview) incorporada en la función setCompoundDrawablesWithIntrinsicBounds () para hacer lo que está buscando
en mi código lo usé así. 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);
}
});
Ocultar dibujable usando esto
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);