android sdk doc中提到了关于xml引用资源是如下格式:
@[<package_name>:]<resource_type>/<resource_name>
@*android:style/Theme.Dialog.Alert(\packages\apps\Settings\AndroidManifest.xml)
@color/workspace_all_apps_and_delete_zone_text_color
Theme.Dialog.Alert
因为Alert是非public的。
使用*号的话与@的区别在于可以调用<sdk_path>\platforms\android-8\data\res\values\themes.xml中所有的已定义的theme.而不使用*只能调用在<sdk_path>\platforms\android-8\data\res\values\public.xml中声明的样式或主题。
从某种意义上来说,没在public.xml中声明的资源是google不推荐使用的。
源码中引用资源是如下格式:
[<package_name>.]R.<resource_type>.<resource_name>
R.drawable.ic_launcher 引用当前工程res/drawable目录下的资源。
com.android.internal.R.drawble.ic_menu_notifications 获取的是非公开的id类似于xml中加*。
color的引用:
android:background="#FFFFFF"
android:background="@color/red"
android:background="@android:color/darker_gery"
<color name="white">#FFFFFF</color>
<color name="black">#000000</color>
<color name="yellow">#FEF693</color>
<color name="blue">#0000FF</color>
<color name="red">#FF0000</color>
<color name="deep_yellow">#FF9900</color>
<color name="weak_yellow">#FE9B21</color>
<color name="tollbar_text_color">#B1B1B1</color>