2011-09-11 24 views
12

Tôi đang cố gắng đặt hình ảnh ở bên phải nút của tôi sau khi nút được nhấp. Tôi muốn làm điều này thông qua mã.Làm cách nào để đặt tài nguyên drawableRight qua mã?

Tôi đã thấy cách thay đổi tài nguyên nền qua mã nhưng tôi không thể tìm thấy bất kỳ ví dụ nào cho thấy cách thay đổi các mặt qua mã. Có thể không?

+0

ý của bạn là gì khi thay đổi bên ?, là hình ảnh của bạn ở bên trái của nút trước khi nhấp vào nút? –

+0

Ở bên phải và đó là chấm đỏ. Tôi muốn thay đổi màu xanh khi nhấp. (Đó là một nút bật tắt) –

+4

setCompoundDrawablesWithIntrinsicBounds câu hỏi liên quan: http://stackoverflow.com/questions/4250923/how-to-change-a-buttons-icon-programmatically – Erdal

Trả lời

29

Bạn cần phải sử dụng phương pháp

public void setCompoundDrawables (Drawable left, Drawable top, Drawable right, 
Drawable bottom) 

với null cho bất kỳ mà không cần thiết.

+0

như chỉ ra bởi Erdal ... – eyespyus

+6

Tôi có thể thực hiện việc này với điều này: \t \t \t \t button_drill.setCompoundDrawablesWithIntrinsicBounds (0, 0, R.drawable.ic_button_green, 0); hoặc tôi có nên sử dụng Drawables và biến tài nguyên của tôi thành một hình vẽ không? –

+7

Có lẽ bạn muốn sử dụng 'setCompoundDrawablesWithIntrinsicBounds'. Với phương thức khác, bạn sẽ phải gọi 'setBounds' trên Drawables trước khi chuyển chúng thành các tham số, nếu không chúng sẽ không được hiển thị chính xác (sẽ không hiển thị) – janos

7

Thông thường, bạn có thể thay đổi sử dụng này

Drawable draw = getResources().getDrawable(R.drawable.facebook); 
myButton.setCompoundDrawablesWithIntrinsicBounds(null, null, draw, null); 

Hãy nhận biết bạn có thể bỏ lỡ các văn bản nút.

Các vấn đề liên quan