Đây là 2 giải pháp để thay đổi nền của EditText tôi có điều tra trước đây, hy vọng nó có thể giúp bạn:
★ Issue: Khi thiết lập nền để EditText nó trông rất khủng khiếp
★ Analysys: EditText đã sử dụng hình ảnh chín đường cho nền. Họ sử dụng một chọn để thay đổi cơ sở hình nền về tình trạng hiện tại của EditText (Enable/Focus/Press, Default)
★ Có hai giải pháp cho người giải quyết vấn đề này, mỗi giải pháp có cả lợi thế và bất lợi:
★ Solution1: Tạo tùy chỉnh bản thân EditText (theo giải pháp này, chúng tôi đã tự do thay đổi quan điểm của EditText
▲ Advantage:. bạn tự do làm cho EditText xem theo pu của bạn rpose, Không cần phải tạo ra hình ảnh Ninepath như hiện tại thực hiện của Android EditText. (Nhà cung cấp phải của bạn IF trong EditText của bạn để thay đổi nền trơn tru dựa trên trạng thái EditText (Enable/Focus ....) tái sử dụng có thể tùy chỉnh và nhiều hơn nữa trong trường hợp bạn muốn thay đổi màu sắc của nền hoặc thêm màu sắc hơn
▼ Nhược điểm: Đi nhiều nỗ lực để tạo ra và kiểm tra tùy chỉnh của bạn EditText. (tôi chọn giải pháp 2 để không có bản demo thực hiện các giải pháp 1, nếu có một làm theo giải pháp này cảm thấy tự do để chia sẻ với chúng tôi code demo của bạn)
★ Solution2: sử dụng selector như Android thực hiện
xml ❶Create tập tin gọi edittext_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/edittext_selector">
<!-- Image display in background in select state -->
<item
android:state_pressed="true"
android:drawable="@drawable/your_ninepath_image">
</item>
<!-- Image display in background in select state -->
<item
android:state_enabled="true"
android:state_focused="true"
android:drawable="@drawable/your_ninepath_image">
</item>
<!-- Default state -->
<item android:state_enabled="true"
android:drawable="@drawable/your_ninepath_image">
</item>
</selector>
❷On EditText xml bộ selector:
<EditText
...
android:background="@layout/**edittext_selector**"
...
</EditText>
★ Note:
● Trong mã demo này tôi đã loại bỏ một số hành vi của view state, tham khảo android thực hiện hành vi chi tiết (trọng tâm/Không tập trung, cho phép/vô hiệu hóa, báo chí, lựa chọn ...)
● Đặt hàng cẩn thận trong bộ chọn của bạn. Thứ tự khác nhau của mục trong tệp xml chọn sẽ có nền khác biệt.
▲ Advantage: Đơn giản, chỉ cần tạo bộ chọn và đặt bộ chọn thành nền, trong trường hợp bạn muốn thêm màu, chỉ cần đặt bộ chọn khác rồi đặt theo mã.
▼ Nhược điểm: Hãy cố gắng tạo hình ảnh đường đi cho bộ chọn, trong trường hợp bạn muốn thay đổi màu hoặc thêm nhiều màu, bạn phải tạo thêm hình ảnh và bộ chọn. Vì vậy, nó ít mạnh mẽ hơn Solution1
Đây là điều tra của tôi để xử lý nền của hình ảnh, do đó, nó có thể đúng hay sai, nếu bạn có giải pháp tốt hơn hoặc giải thích, cảm thấy tự do để chia sẻ với chúng tôi.
Tôi đã thực hiện theo giải pháp 2 và hoạt động.
không phải là nó android: textAppearance = "@ android: attr/textAppearanceSmall" – Bostone
Trên thực tế - cú pháp cho văn bản là chính xác, xem câu trả lời của tôi dưới đây – Bostone