Android xml资源文件中@、@android:type、@*、?、@+含义和区别
@代表引用资源
- 引用自定义资源(android:text="@string/hello")
- 引用系统资源(android:textColor="@android:color/opaque_red")
@*代表引用系统非public资源
系统资源定义分为public和非public。public声明在:
<sdk_path>\platforms\android-8\data\res\values\public.xml
- @*android:type/name:可以调用系统定义的所有资源
- @android:type/name:只能够调用public属性的资源
注:没在public.xml中声明的资源google不推荐使用。
?代表引用主题属性
允许你使用当前主题中的属性的值,这个属性值只能在style资源和xml属性中使用,它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。当你使用这个标记时,你只需要提供属性资源的名称,系统将在主题中查找此资源。(android:textColor="?android:textDisabledColor" )