2012-01-04 61 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