2012-07-02 27 views
11

Làm cách nào để thay đổi màu mặc định của hộp kiểm Android từ đánh dấu màu xanh lục sang màu xanh lam cho một Hộp kiểm cụ thể?Thay đổi Màu mặc định của Android CheckBox Dấu kiểm tra

+1

Dường như là một bản sao của [câu hỏi này] (http://stackoverflow.com/questions/3491203/how-to-customize-the-color-of-the-checkmark-color-in-android-in-a-dialog - và). – nTraum

+3

Sự khác biệt là câu hỏi này có câu trả lời thực và mới. –

+0

Bản sao có thể có của [Cách thay đổi màu của Hộp kiểm?] (Http://stackoverflow.com/questions/5854047/how-to-change-the-color-of-a-checkbox) – afathman

Trả lời

22

Thật không may, việc thay đổi màu không phải là thuộc tính đơn giản. Dấu kiểm là một hình ảnh, vì vậy bạn phải tạo một hình ảnh tùy chỉnh. Hãy xem này example

Tạo một file xml chọn như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:drawable="@drawable/star_down" /> 
    <item android:state_checked="false" android:drawable="@drawable/star" /> 
</selector> 

tiết kiệm tập tin xml này trong thư mục res\drawables\ của bạn. Sau đó, bên trong bố trí tập tin của bạn áp dụng nó vào hộp kiểm của bạn như thế này:

<CheckBox 
    android:text="Custom CheckBox" 
    android:button="@drawable/checkbox_selector" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

Trong ví dụ này, bạn muốn đặt tên selector file xml của bạn "checkbox_selector.xml" và bạn sẽ cần một star_down.png, và star.png trong thư mục drawables của bạn. Bạn có thể sử dụng kỹ thuật này để tạo các hộp kiểm màu khác nhau bằng cách thay đổi hình ảnh hộp kiểm hệ thống thành bất kỳ màu nào bạn muốn và tham chiếu các tệp png bị thay đổi trong bộ chọn.

+1

Trong ví dụ bạn liên kết là một điều tốt. Điều đáng chú ý là các liên kết đi chết, nói chung trong các câu trả lời với các liên kết bạn sẽ muốn đăng nội dung có liên quan từ liên kết là tốt. Vì câu trả lời này sẽ tồn tại trong một thời gian dài nên nó sẽ trở nên vô dụng đối với mọi người trong tương lai nếu liên kết đã bị mục nát. Bây giờ nó vẫn sẽ giúp họ đạt được những gì họ đang có. – FoamyGuy

+0

Điểm tốt. Tôi sẽ làm theo lời khuyên của bạn trong tương lai. – HexAndBugs

5

này rất dễ dàng để làm trong xml sử dụng buttonTint (như cấp API 23):

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:buttonTint="@color/COLOR_HERE" /> 

và như Nicolás chỉ ra, bạn có thể làm điều này bằng appCompatCheckbox v7 cho các API cũ:

<android.support.v7.widget.AppCompatCheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:buttonTint="@color/COLOR_HERE" /> 
+2

Bạn có thể làm điều này như cấp API 7 sử dụng appcompat và '' –

+0

trong trường hợp này các hộp kiểm bị vô hiệu hóa sáng, không thay đổi màu thành màu xám –

+0

@AlexanderTumanin cách thay đổi màu không được chọn thành màu xám? –

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