Я знаю про встановлення drawableRight у XML. але я вимагав робити це програмно, оскільки це змінюється відповідно до якоїсь умови.
Я знаю про встановлення drawableRight у XML. але я вимагав робити це програмно, оскільки це змінюється відповідно до якоїсь умови.
Відповіді:
Ви можете використовувати функцію нижче:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
або (якщо ви хочете передати сам малювальник замість його ідентифікатора)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
Порядок параметрів, що відповідає розташуванню, яке можна малювати, - лівий, верхній, правий, нижній
Шукайте далі тут
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Ви також можете встановити програмне заповнення, що малюється:
myEdit.setCompoundDrawablePadding("Padding value");
Спробуйте, як показано нижче:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Редагувати:
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Спробуйте:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Тоді ви можете додати сенсорний слухач до цього конкретного малюнка.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Пояснюється тут
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Встановлює малюнки (якщо такі є), щоб вони з’являлись ліворуч, зверху, праворуч та нижче тексту. Використовуйте 0, якщо ви не хочете, щоб там можна було малювати. Межі, що витягуються, будуть встановлені для їх власних меж.
Ви можете використовувати перегляд editText (тут це txview), вбудований у функцію setCompoundDrawablesWithIntrinsicBounds (), щоб робити те, що ви шукаєте
у своєму коді я використовував його ось так. 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);
}
});
Сховати Drawable за допомогою цього
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);