2013-08-26 27 views
8

Tôi có thể tháo rời được chỉ định cho một nút cũng như nền có thể vẽ được. Tôi muốn cung cấp bộ chọn để khi người dùng nhấn/lấy nét/vô hiệu hóa nút, giao diện của nó sẽ thay đổi. Hình ảnh tôi đang sử dụng cho hình vẽ bên trái là chữ "x" màu đỏ.Có thể thay đổi điểm vẽ trái của Nút trong Bộ chọn xml không?

Tôi muốn điều này trao đổi với chữ "X" màu xám trong khi nút được nhấn hoặc tắt. Điều này có thể sử dụng bộ chọn không?

Đây là những gì tôi đã cố gắng (mà làm việc cho hình ảnh biên giới/nền, nhưng không phải cho đối tượng vẽ trái (rõ ràng).

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove"/> 
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_focused="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/BlackBorder" 
     android:drawableLeft="@drawable/Remove"/> 
</selector> 
+0

@ theMothaShip tạo ra một bộ chọn riêng và đặt nó như là leftdrawable – Varun

+0

@Varun Tôi cảm thấy ngớ ngẩn mà tôi không nghĩ rằng để làm điều đó ngay từ đầu ... Cảm ơn! – theMothaShip

+0

@Varun Làm việc như một sự quyến rũ, gửi nó là một câu trả lời và tôi sẽ đánh dấu nó là được chấp nhận – theMothaShip

Trả lời

14

Tạo một chọn riêng biệt và thử thiết rằng như drawableLeft trên Button của bạn

+0

Bạn có thể giải thích điều này hơn không? Không chắc là tôi hiểu. – user2966445

+0

Trong câu hỏi, OP có một 'selector' được đặt làm nền và có biểu tượng khác là' leftDrawable' trên 'Nút' không phản ánh trạng thái lựa chọn. Giải pháp là không sử dụng một biểu tượng đơn giản như 'leftDrawable' mà thay vào đó tạo một' selector' drawable (StateListDrawable) và sử dụng nó như là 'leftDrawable'. Nếu bạn muốn biết thêm về 'StateListDrawable', hãy theo liên kết này tới tài liệu chính thức - https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – Varun

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