2012-01-04 60 views

回答

5

该语法用于引用系统样式属性,它与用于引用由Android系统预定义的资源的语法类似:而在您使用的一般资源情况下, @android:drawable/ic_media_play引用由XML文档中包含的ImageButton UI元素的属性的值ic_media_play.png代表的可绘制元素,该属性引用是使用?而不是@构建的,但其余的构成如下规则和作品以同样的方式。

尤其属性通常存储在res/values/attrs.xml,在那里你可以找到(查看存储在Android SDK中的系统资源)以下

<attr name="progressBarStyleHorizontal" format="reference" /> 

表明该属性是其他一些资源的引用。风格属性在res/values/themes.xml定义在以下的方式:

<item name="progressBarStyleHorizontal"> 
    @android:style/Widget.ProgressBar.Horizontal 
</item> 

这的确是作为已被另一个答案描述的系统res/values/styles.xml到样式Widget.ProgressBar.Horizontal的引用。

需要注意的是,在上下文当系统知道要期待一个属性资源的引用,你甚至可以忽略的资源类型(即attr/部分),导致语法如:

android:textColor="?android:textColorSecondary" 

您可能会发现在Android developer guide

1

android:attr表示这种风格是从android的框架中挑选出来的。所以,如果你的框架http://bit.ly/yBC5pM浏览styles.xml源和搜索 progressBarStyleHorizo​​ntal,你可以看到它从Widget.ProgressBar.Horizo​​ntal

<style name="Widget.ProgressBar.Horizontal" parent="@style/Widget.ProgressBar"> 
    <item name="maxHeight">20.0dip</item> 
    <item name="indeterminateOnly">false</item> 
    <item name="indeterminateDrawable">@drawable/progress_indeterminate_horizontal</item> 
    <item name="progressDrawable">@drawable/progress_horizontal</item> 
    <item name="minHeight">20.0dip</item> 
</style> 

以上所有特性继承Widget.Progressbar +性能(因为它的父母是这样的)将会继承到你的进度条。

+0

我的问题是关系到其风格被定义 “风格=”机器人语法稍微信息:ATTR /” – prashant 2012-01-04 17:00:30

+0

像guilio说,语法部分可以在链路发现由他提供 – nandeesh 2012-01-04 20:12:24