Tôi biết về set drawableRight trong XML. nhưng tôi bắt buộc phải làm điều đó theo chương trình vì nó thay đổi theo một số điều kiện.
Tôi biết về set drawableRight trong XML. nhưng tôi bắt buộc phải làm điều đó theo chương trình vì nó thay đổi theo một số điều kiện.
Câu trả lời:
Bạn có thể sử dụng chức năng dưới đây:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
hoặc (nếu bạn muốn chuyển chính nó có thể vẽ thay vì ID của nó)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
Thứ tự của các tham số tương ứng với vị trí có thể vẽ là: trái, trên, phải, dưới
Tìm thêm ở đây
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Bạn cũng có thể đặt phần đệm có thể kéo theo lập trình:
myEdit.setCompoundDrawablePadding("Padding value");
Hãy thử như bên dưới:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Biên tập :
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Thử:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Sau đó, bạn có thể thêm trình nghe cảm ứng vào có thể vẽ cụ thể đó.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
Giải thích ở đây
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Đặt các Bản vẽ (nếu có) xuất hiện ở bên trái, bên trên, bên phải và bên dưới văn bản. Sử dụng 0 nếu bạn không muốn Drawable ở đó. Các giới hạn của Drawables sẽ được đặt thành giới hạn nội tại của chúng.
Bạn có thể sử dụng chế độ xem editText của mình (ở đây là txview) được tích hợp trong hàm setCompoundDrawablesWithIntriualityBounds () để thực hiện những gì bạn đang tìm kiếm
trong mã của tôi Tôi đã sử dụng nó như thế này. 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);
}
});
Ẩn có thể vẽ bằng cách sử dụng này
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);