Fra*_*eng 6 android android-framework android-resources
我从framework-res模块中的styles.xml文件中复制此代码
Run Code Online (Sandbox Code Playgroud)<style name="Theme"> <item name="colorForeground">@android:color/bright_foreground_dark</item> <item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item> <item name="colorBackground">@android:color/background_dark</item>.
Run Code Online (Sandbox Code Playgroud)<style name="Theme.Black"> <item name="android:windowBackground">@android:color/black</item> <item name="android:colorBackground">@android:color/black</item> </style>
如您所见,它们都有一个属性名称,其值为windowBackground.但是formar有一个android:而后者没有.是否真的有必要android:在android框架中编写前缀?
发现这是一个有趣的问题,并尝试探索找到答案..这是我发现..
来自:http://developer.android.com/guide/topics/resources/style-resource.html
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name="style_name"
parent="@[package:]style/style_to_inherit">
<item
name="[package:]style_property_name"
>style_value</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
item - 为样式定义单个属性.必须是元素的子元素.attributes:name属性资源.需要.要定义的样式属性的名称,必要时带有包前缀(例如android:textColor).
来自:http://developer.android.com/guide/topics/manifest/manifest-intro.html
资源值某些属性具有可以向用户显示的值 - 例如,活动的标签和图标.这些属性的值应该是本地化的,因此可以从资源或主题设置.资源值以下列格式表示,
@[package:]type:name
Run Code Online (Sandbox Code Playgroud)
如果资源与应用程序位于同一个包中,则可以省略包名称,type是一种资源 - 例如"string"或"drawable" - 而name是标识特定资源的名称.例如:主题中的值以类似的方式表示,但初始值为"?" 而不是 '@':
?[package:]type:name
Run Code Online (Sandbox Code Playgroud)
最后,我尝试给出没有android:的属性,并且它抛出异常,虽然它编译成功.
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |