2011-07-13 27 views
11

Tôi đang cố gắng lưu trữ giá trị hex color của văn bản trong strings.xml để tất cả tệp bố cục sẽ tham chiếu đến đó (để có thể nhanh chóng thay đổi tất cả văn bản bố cục cho dự án một cách dễ dàng) tuy nhiên tôi đang gặp sự cố khi đề cập đến nó.Lưu trữ giá trị màu hex trong strings.xml

Sử dụng android:textColor="#FFFFFF" trong bố cục xml của tôi hoạt động tốt. Tuy nhiên, việc sử dụng android:textColor="@strings/textColor" mang lại cho tôi cả lỗi khi tôi bao gồm # và không bao gồm.

Khi tôi không bao gồm # nó yêu cầu #. Khi tôi thêm # báo cáo DDMS:

07-13 04: 35: 22.870: ERROR/AndroidRuntime (331): Nguyên nhân: android.content.res.Resources $ NotFoundException: Tệp # FF0000 từ tài nguyên có thể kéo ID # 0x7f040003: .xml mở rộng được yêu cầu

Có ai biết cách kết hợp các câu lệnh trong tệp bố cục không? ví dụ: textColor="#"+"@strings/textColor và sau đó chỉ cần đặt chuỗi thành "FFFFFF" chẳng hạn.

Trả lời

25

Bạn cần phải tạo một tập hợp các phong cách trong xml của bạn (thường xuyên trong res/values ​​/ styles.xml)

<color name="gray">#eaeaea</color> 
<color name="titlebackgroundcolor">#00abd7</color> 
<color name="titlecolor">#666666</color> 

Trong file layout bạn có thể gọi đến màu sắc hoặc kiểu:

android:textColor="@color/titlecolor" 

Che ckout một số ví dụ:

http://developer.android.com/guide/topics/ui/themes.html

+1

Bạn đang truyền thuyết tuyệt đối. Cảm ơn rất nhiều. Tôi đã chắc chắn đọc về điều này nhiều lần trước nhưng tại 5.55am bộ nhớ của tôi không hoạt động tốt nhất của nó. – jblz

5

Bạn có thể khai báo tài nguyên màu rõ ràng. Theo quy ước này được đặt trong res/values ​​/ colors.xml:

<resources> 
    <color name="my_color">#FFFFFFFF</color> 
</resources> 

Sau đó, trong bố trí hay ở nơi khác bạn có thể viết android:textColor="@color/my_color"

4

Cho rằng bạn có thể làm một điều: Xác định colors.xml bên trong thư mục các giá trị và sau đó thêm giá trị màu của bạn với # như đưa ra dưới đây:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="myColor">#000000</color> 
</resources> 

sau đó, làm thế nào để bạn tham khảo giá trị màu này bên trong ứng dụng:

tĩnh:

android:textColor="@color/myColor" 

Mã hóa:

TextView1.setTextColor(R.color.myColor); 
0

### mã của bạn là trong string.xml tập tin ###

< color name="textColor">#FFFFFF< /color> 

Trong mã của bạn, bạn khai báo tên màu là "Format", tôi muốn xác nhận bạn rằng tên được đưa ra bởi màu văn bản là phương thức tích hợp sẵn, nhưng bạn không thể ghi đè lên phương thức dựng sẵn.

giải pháp của vấn đề của bạn, mã của bạn nên thích rằng:

< color name="text_color">#FFFFFF< /color> 

trong này tên trường hợp của màu sắc không phải là phương pháp sẵn có và bạn đã không phải đối mặt với bất kỳ lỗi thời gian chạy.

cảm ơn.

2

Sử dụng những màu sắc

<color name="Maroon">#800000</color> 
<color name="Aquamarine">#7FFFD4</color> 
<color name="Chartreuse">#7FFF00</color> 
<color name="LawnGreen">#7CFC00</color> 
<color name="MediumSlateBlue">#7B68EE</color> 
<color name="LightSlateGray">#778899</color> 
<color name="SlateGray">#708090</color> 
<color name="OliveDrab">#6B8E23</color> 
<color name="SlateBlue">#6A5ACD</color> 
<color name="DimGray">#696969</color> 
<color name="MediumAquamarine">#66CDAA</color> 
<color name="CornflowerBlue">#6495ED</color> 
<color name="CadetBlue">#5F9EA0</color> 
<color name="DarkOliveGreen">#556B2F</color> 
<color name="Indigo">#4B0082</color> 
<color name="MediumTurquoise">#48D1CC</color> 
<color name="DarkSlateBlue">#483D8B</color> 
<color name="SteelBlue">#4682B4</color> 
<color name="RoyalBlue">#4169E1</color> 
<color name="Turquoise">#40E0D0</color> 
<color name="MediumSeaGreen">#3CB371</color> 
<color name="LimeGreen">#32CD32</color> 
<color name="DarkSlateGray">#2F4F4F</color> 
<color name="SeaGreen">#2E8B57</color> 
<color name="ForestGreen">#228B22</color> 
<color name="LightSeaGreen">#20B2AA</color> 
<color name="DodgerBlue">#1E90FF</color> 
<color name="MidnightBlue">#191970</color> 
<color name="Aqua">#00FFFF</color> 
<color name="Cyan">#00FFFF</color> 
<color name="SpringGreen">#00FF7F</color> 
<color name="Lime">#00FF00</color> 
<color name="MediumSpringGreen">#00FA9A</color> 
<color name="DarkTurquoise">#00CED1</color> 
<color name="DeepSkyBlue">#00BFFF</color> 
<color name="DarkCyan">#008B8B</color> 
<color name="Teal">#008080</color> 
<color name="Green">#008000</color> 
<color name="DarkGreen">#006400</color> 
<color name="Blue">#0000FF</color> 
<color name="MediumBlue">#0000CD</color> 
<color name="DarkBlue">#00008B</color> 
<color name="Navy">#000080</color> 
<color name="Black">#000000</color> 
<color name="Transparent">#00000000</color> 


<drawable name="screen_background_light">#ffffffff</drawable> 
<drawable name="screen_background_dark">#ff000000</drawable> 
<drawable name="status_bar_closed_default_background">#ff000000</drawable> 
<drawable name="status_bar_opened_default_background">#ff000000</drawable> 
<drawable name="notification_item_background_color">#ff111111</drawable> 
<drawable name="notification_item_background_color_pressed">#ff454545</drawable> 
<drawable name="search_bar_default_color">#ff000000</drawable> 
<drawable name="safe_mode_background">#60000000</drawable> 

<drawable name="screen_background_dark_transparent">#80000000</drawable> 

<drawable name="screen_background_light_transparent">#80ffffff</drawable> 

<color name="safe_mode_text">#80ffffff</color> 
<color name="white">#ffffffff</color> 
<color name="black">#ff000000</color> 
<color name="transparent">#00000000</color> 
<color name="background_dark">#ff000000</color> 
<color name="background_light">#ffffffff</color> 
<color name="bright_foreground_dark">@android:color/background_light</color> 
<color name="bright_foreground_light">@android:color/background_dark</color> 
<color name="bright_foreground_dark_disabled">#80ffffff</color> 
<color name="bright_foreground_light_disabled">#80000000</color> 
<color name="dim_foreground_dark">#bebebe</color> 
<color name="dim_foreground_dark_disabled">#80bebebe</color> 
<color name="dim_foreground_dark_inverse">#323232</color> 
<color name="dim_foreground_dark_inverse_disabled">#80323232</color> 
<color name="hint_foreground_dark">#808080</color> 
<color name="dim_foreground_light">#323232</color> 
<color name="dim_foreground_light_disabled">#80323232</color> 
<color name="dim_foreground_light_inverse">#bebebe</color> 
<color name="dim_foreground_light_inverse_disabled">#80bebebe</color> 
<color name="hint_foreground_light">#808080</color> 
<color name="highlighted_text_dark">#9983CC39</color> 
<color name="highlighted_text_light">#9983CC39</color> 
<color name="link_text_dark">#5c5cff</color> 
<color name="link_text_light">#0000ee</color> 
<color name="suggestion_highlight_text">#177bbd</color> 


<color name="input_method_navigation_guard">#ff000000</color> 

<!-- For date picker widget --> 
<drawable name="selected_day_background">#ff0092f4</drawable> 

<!-- For settings framework --> 
<color name="lighter_gray">#ddd</color> 
<color name="darker_gray">#aaa</color> 

<!-- For security permissions --> 
<color name="perms_dangerous_grp_color">#33b5e5</color> 
<color name="perms_dangerous_perm_color">#33b5e5</color> 
<color name="shadow">#cc222222</color> 
<color name="perms_costs_money">#ffffbb33</color> 

<!-- For search-related UIs --> 
<color name="search_url_text_normal">#7fa87f</color> 
<color name="search_url_text_selected">@android:color/black</color> 
<color name="search_url_text_pressed">@android:color/black</color> 

<!-- SlidingTab --> 
<color name="sliding_tab_text_color_active">@android:color/black</color> 
<color name="sliding_tab_text_color_shadow">@android:color/black</color> 

<!-- keyguard tab --> 
<color name="keyguard_text_color_normal">#ffffff</color> 
<color name="keyguard_text_color_unlock">#a7d84c</color> 
<color name="keyguard_text_color_soundoff">#ffffff</color> 
<color name="keyguard_text_color_soundon">#e69310</color> 
<color name="keyguard_text_color_decline">#fe0a5a</color> 

<!-- keyguard clock --> 
<color name="lockscreen_clock_background">#ffffffff</color> 
<color name="lockscreen_clock_foreground">#ffffffff</color> 
<color name="lockscreen_clock_am_pm">#ffffffff</color> 
<color name="lockscreen_owner_info">#ff9a9a9a</color> 

<!-- keyguard overscroll widget pager --> 
<color name="kg_multi_user_text_active">#ffffffff</color> 
<color name="kg_multi_user_text_inactive">#ff808080</color> 
<color name="kg_widget_pager_gradient">#ffffffff</color> 

<!-- FaceLock --> 
<color name="facelock_spotlight_mask">#CC000000</color> 

<!-- For holo theme --> 
<drawable name="screen_background_holo_light">#fff3f3f3</drawable> 
<drawable name="screen_background_holo_dark">#ff000000</drawable> 

<color name="background_holo_dark">#ff000000</color> 
<color name="background_holo_light">#fff3f3f3</color> 
<color name="bright_foreground_disabled_holo_dark">#ff4c4c4c</color> 
<color name="bright_foreground_disabled_holo_light">#ffb2b2b2</color> 
<color name="dim_foreground_holo_dark">#bebebe</color> 
<color name="dim_foreground_disabled_holo_dark">#80bebebe</color> 
<color name="dim_foreground_inverse_holo_dark">#323232</color> 
<color name="dim_foreground_inverse_disabled_holo_dark">#80323232</color> 
<color name="hint_foreground_holo_dark">#808080</color> 
<color name="dim_foreground_holo_light">#323232</color> 
<color name="dim_foreground_disabled_holo_light">#80323232</color> 
<color name="dim_foreground_inverse_holo_light">#bebebe</color> 
<color name="dim_foreground_inverse_disabled_holo_light">#80bebebe</color> 
<color name="hint_foreground_holo_light">#808080</color> 
<color name="highlighted_text_holo_dark">#6633b5e5</color> 
<color name="highlighted_text_holo_light">#6633b5e5</color> 
<color name="link_text_holo_dark">#5c5cff</color> 
<color name="link_text_holo_light">#0000ee</color> 

<!-- Group buttons --> 
<eat-comment/> 

<color name="group_button_dialog_pressed_holo_dark">#46c5c1ff</color> 
<color name="group_button_dialog_focused_holo_dark">#2699cc00</color> 
<color name="group_button_dialog_pressed_holo_light">#ffffffff</color> 
<color name="group_button_dialog_focused_holo_light">#4699cc00</color> 

<!-- Highlight colors for the legacy themes --> 
<eat-comment/> 

<color name="legacy_pressed_highlight">#fffeaa0c</color> 
<color name="legacy_selected_highlight">#fff17a0a</color> 
<color name="legacy_long_pressed_highlight">#ffffffff</color> 

<!-- General purpose colors for Holo-themed elements --> 
<eat-comment/> 

<!-- A light Holo shade of blue --> 
<color name="holo_blue_light">#ff33b5e5</color> 
<!-- A light Holo shade of gray --> 
<color name="holo_gray_light">#33999999</color> 
<!-- A light Holo shade of green --> 
<color name="holo_green_light">#ff99cc00</color> 
<!-- A light Holo shade of red --> 
<color name="holo_red_light">#ffff4444</color> 
<!-- A dark Holo shade of blue --> 
<color name="holo_blue_dark">#ff0099cc</color> 
<!-- A dark Holo shade of green --> 
<color name="holo_green_dark">#ff669900</color> 
<!-- A dark Holo shade of red --> 
<color name="holo_red_dark">#ffcc0000</color> 
<!-- A Holo shade of purple --> 
<color name="holo_purple">#ffaa66cc</color> 
<!-- A light Holo shade of orange --> 
<color name="holo_orange_light">#ffffbb33</color> 
<!-- A dark Holo shade of orange --> 
<color name="holo_orange_dark">#ffff8800</color> 
<!-- A really bright Holo shade of blue --> 
<color name="holo_blue_bright">#ff00ddff</color> 
<!-- A really bright Holo shade of gray --> 
<color name="holo_gray_bright">#33CCCCCC</color> 

<drawable name="notification_template_icon_bg">#3333B5E5</drawable> 
<drawable name="notification_template_icon_low_bg">#0cffffff</drawable> 

<!-- Keyguard colors --> 
<color name="keyguard_avatar_frame_color">#ffffffff</color> 
<color name="keyguard_avatar_frame_shadow_color">#80000000</color> 
<color name="keyguard_avatar_nick_color">#ffffffff</color> 
<color name="keyguard_avatar_frame_pressed_color">#ff35b5e5</color> 
<color name="accessibility_focus_highlight">#80ffff00</color> 


<color name="header_color">#016435</color> 
<color name="back_ground_color">#008000</color> 

<color name="new_header_color">#3bb39d</color> 

<color name="dialog_title_color">#fcbc30</color> 

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