2010-09-10 23 views
5

Tôi tạo ra nút với một số bóng sử dụng một phong cách:tùy chỉnh nút: phong cách thay đổi khi ép

<style name="test"> 
    <item name="android:shadowColor">#FFFFFF</item> 
    <item name="android:shadowRadius">1</item> 
    <item name="android:shadowDx">1</item> 
    <item name="android:shadowDy">1</item> 
</style> 

này áp dụng một bóng trắng trên văn bản của nút trong trạng thái bình thường của nó. Tôi chỉ tự hỏi nếu có ai biết nếu có một cách để loại bỏ bóng này khi nút là một trạng thái ép. Nói cách khác, có cách nào để áp dụng một kiểu khác khi nút ở trạng thái khác (nhấn) không?

Cảm ơn trước!

chỉnh sửa

bold.xml:

<resources> 
    <style name="bold_text"> 
     <item name="android:textStyle">bold</item> 
    </style> 
</resources> 

button.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/test_pressed" 
       style="@style/bold_text" 
      android:state_pressed="true"/> 
    <item android:drawable="@drawable/test_focused" 
      android:state_focused="true"/> 
    <item android:drawable="@drawable/test_normal"/> 
</selector> 

bố trí của tôi:

<Button 
     ... 
     android:background="@drawable/button"/> 

Trả lời

2
+0

Phương pháp này không hoạt động ... ColorStateList chỉ cho phép tôi thay đổi màu của văn bản ở các trạng thái khác nhau. Tôi muốn thay đổi kiểu dáng (ví dụ: tăng kích thước văn bản khi nhấn hoặc xóa bóng khi được nhấn) cho các trạng thái khác nhau. – user440308

+0

Điều này có thể làm nhiều hơn là chỉ màu sắc, bạn có thể làm toàn bộ drawables được xác định trong xml, bạn chỉ cần áp dụng các phong cách để drawable của bạn. – schwiz

+0

Hmm. Tôi không thể làm cho nó hoạt động được. Tôi đã tạo một kiểu mới có tên là "đậm" và tạo một XML khác có tên là "button_test.xml" tệp có chứa một bộ chọn với các trạng thái khác nhau (được nhấn, tập trung, bình thường). Tôi chỉ không chắc chắn làm thế nào để tham khảo "button_test.xml" trong cách bố trí của tôi. – user440308

0

Sau khi xem xét một trong các tệp button.xml của tôi, tôi thấy rằng thứ tự đánh giá (được lưu ý trong tài liệu ..) là như vậy thử nghiệm của tôi đã chọn cùng một mức có thể rút. Chỉnh sửa thứ tự đã làm cho nó hoạt động.

Ngoại trừ trường hợp không phải là button2.xml. Tôi đã làm cho nó hoạt động bằng cách loại bỏ tất cả ngoại trừ các thông số kỹ thuật "drawable" và "state_ *". Tôi đã có một "textColor" trong đó - trông giống như XML được vượt qua kiểm tra khác (như không style = ".." ở trên) âm thầm vô hiệu hóa bộ chọn. Một nơi tốt để mở rộng xác nhận!

Schwiz có quyền ... cho văn bản sử dụng bộ chọn riêng được xác định trong thư mục con "màu" của thư mục tài nguyên của bạn: xem ColorStateList.

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