2013-05-16 165 views
0

假設我有一個繪製的.xml這樣的:相對於屏幕尺寸梯度

<?xml version="1.0" encoding="utf-8"?> 

<gradient 
    android:centerX="0.5" 
    android:centerY="0.5" 
    android:endColor="#ff2222bb" 
    android:gradientRadius="400" 
    android:startColor="#ff6666ff" 
    android:type="radial" /> 

<corners android:radius="50dp" /> 

我用這個作爲我的主要佈局的背景。

現在我的問題是,「400」是一個絕對值,不取決於密度,也不取決於屏幕大小。結果是在小型手機和桌面上,這個xml的圖形渲染是非常不同的。

有沒有辦法將gradientRadius鏈接到屏幕大小,以便drawable在所有屏幕上都相等?

謝謝。

+0

我確定你已經看到了其他的stackoverflow答案,解釋了百分比符號除以100的值實際上並不是真實的百分比,正如人們所期望的那樣。如果有一天有新人在這裏登陸,我就把這個放在這裏http://stackoverflow.com/questions/11176590/gradient-radius-as-percentage-of-screen-size – Poutrathor

回答

0

另一種解決方案是您可以使用百分比來設置漸變半徑大小。機器人醫生說:

android:gradientRadius

可以是分數值,其與任一%或%P所附一個 浮點數,例如 「14.5%」。 %後綴始終表示基本大小的百分比;可選的 %p後綴提供了相對於某個父容器的大小。

+0

不幸的是,%不被接受在該領域,它只喜歡整數。 –

+0

哦,我檢查了你的文檔,其實你是正確的,但它似乎不工作......奇怪! –

+0

百分比只適用於棒棒糖,至少從我的測試來看,這是行爲。對於前棒棒糖版本,您必須以編程方式或通過不同的尺寸值進行設置。 –