2012-10-13 73 views
2

我正在嘗試創建一個自定義android「style」xml。雖然每個人都一樣,我看到那裏好像是用整數,它甚至不會編譯:自定義android風格不允許ints?

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="DialogStyle" 
      parent="android:style/Theme.Dialog" 
      > 
     <item name="android:background">@color/ReliantCyan</item> 
     <item name="android:radius">6</item> 
     <item name="android:textColor">@color/White</item> 
    </style> 
</resources> 

打動了我:

.../dialogStyle.xml:7: error: Error: Integer types not allowed (at 'android:radius' with value '6'). 

我自己也嘗試6pd6px但隨後說不允許有字符串。我在這裏做錯了什麼?

(任何接受的答案必須是Android 2.2的兼容。)


我現在也嘗試:

<dimen name="dRadius">10pd</dimen> 

然後

<item name="android:radius">@dimen/dRadius</item> 

,但我得到了非常相似錯誤:

... error: Error: String types not allowed (at 'dRadius' with value '10pd'). 
+0

你說'6pd',你的意思是'6dp'?另外,請嘗試使用維度資源。將其設置爲' 6dp',並使用'@ dimen/testradius'在下面引用它。 – Eric

+0

是啊'6dp'。那麼這是否意味着製作一種風格至少需要2個文件? – Fresheyeball

+0

不,''dimen'可以在同一個文件中。 (在'style'標籤上面。)另外,你輸入了''10pd''。它需要是'dp'。 – Eric

回答

3

我無法解釋這種行爲,完全是。指定<item name="android:radius">6dp</item>應該就夠了。

但是,要解決此問題,我們可以添加維度資源(即使在同一個文件中,只要它不在style標記中),然後通過@dimen使用該資源。

事情是這樣的:

<resources> 
    <dimen name="testradius">6dp</dimen> 
    <style ...> 
     ... 
     <item name="android:radius">@dimen/testradius</item> 
     ... 
    </style> 
</resources> 

確保將其指定爲6dp6px應該也可以),不66pd或其任何變形。

1

我可能是錯的,但我覺得你的聲明應該是

機器人:半徑=「6DP」