Wiem o ustawieniu drawableRight w XML. ale musiałem to zrobić programowo, ponieważ jest to zmiana zgodnie z jakimś warunkiem.
Wiem o ustawieniu drawableRight w XML. ale musiałem to zrobić programowo, ponieważ jest to zmiana zgodnie z jakimś warunkiem.
Odpowiedzi:
Możesz skorzystać z poniższej funkcji:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
lub (jeśli chcesz przekazać sam drawable zamiast jego identyfikatora)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
Kolejność parametrów odpowiadająca lokalizacji do rysowania jest następująca: lewy, górny, prawy, dolny
Znajdź więcej tutaj
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Możesz również programowo ustawić dopełnienie do rysowania:
myEdit.setCompoundDrawablePadding("Padding value");
Spróbuj jak poniżej:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Edytować :
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Próbować:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Następnie możesz dodać słuchacza dotyku do tego konkretnego rysunku.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Wyjaśniono tutaj
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Ustawia Drawables (jeśli istnieją) tak, aby pojawiały się po lewej stronie, powyżej, po prawej stronie i poniżej tekstu. Użyj 0, jeśli nie chcesz tam Drawable. Granice Drawables zostaną ustawione na ich wewnętrzne ograniczenia.
Możesz użyć swojego widoku editText (tutaj jest to txview) wbudowanej funkcji setCompoundDrawablesWithIntrinsicBounds (), aby zrobić to, czego szukasz
w moim kodzie użyłem tego w ten sposób. 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);
}
});
Ukryj do rysowania za pomocą tego
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);