Khi tôi nhìn vào misc. Các hướng dẫn và ví dụ về Android khi nói đến việc chỉ định màu sắc tôi thường thấy các hằng số như @color/red
hoặc @color/black
v.v ... đang được sử dụng. Vì một lý do kì lạ nào đó KHÔNG BAO GIỜ làm việc cho tôi! Tôi luôn cần chỉ định màu bằng ký hiệu "#RGB", #ARGB, ..., #AARRGGBB.Tệp .xml của Android: Tại sao các màu được xác định trước không hoạt động đối với tôi?
Ngay sau khi tôi cố gắng sử dụng bất kỳ hằng số ghi nhớ nào như ví dụ: "@ color/red" Tôi nhận được thông báo lỗi như sau:
[...] C:\Users\mmo\Test\res\drawable\edit_text.xml:5: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/orange').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:3: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:4: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:5: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/green').
[...] C:\Users\mmo\Test\res\drawable\myDrawable.xml:6: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/black').
Tại sao vậy? Tại sao tôi không thể sử dụng các hằng số được xác định trước này? Tôi có cần phải thêm tiền tố cho họ với một số tên gói (tôi đã thử @android:color/red
nhưng chỉ gây ra một lỗi khác)? Tôi có cần phải tự xác định những màu này không? Nếu vậy: làm thế nào và ở đâu? Bất kỳ ý tưởng hoặc đề xuất nào?
Michael
Tôi đã tạo một tệp như vậy trong ứng dụng của mình ngay bây giờ và đã xác định một loạt màu mặc định tại đó và bây giờ tôi thực sự có thể sử dụng các màu được đặt tên như vậy. Rõ ràng tất cả những ví dụ tôi đã thấy giả định sự tồn tại của một tập tin như vậy mà không bao giờ nói rõ điều đó. Vì vậy, tôi đã sai lầm đã đi đến kết luận rằng những giá trị này được xác định trước. – mmo
Xem http://stackoverflow.com/a/3964048/632951 quá – Pacerier