相对于屏幕尺寸的渐变

时间:2013-05-16 08:02:25

标签: android android-drawable

假设我有一个像这样的可绘制的.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在所有屏幕上显示相等?

感谢。

1 个答案:

答案 0 :(得分:0)

另一种解决方案是您可以使用百分比来设置渐变半径大小。 Android doc说:

  

android:gradientRadius

     

可能是小数值,也就是a   浮点数附加%或%p,例如“14.5%”。   %后缀总是表示基本大小的百分比;可选的   %p后缀提供相对于某个父容器的大小。