2013-05-16 94 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

百分比只适用于棒棒糖,至少从我的测试来看,这是行为。对于前棒棒糖版本,您必须以编程方式或通过不同的尺寸值进行设置。 –