Android 相对于屏幕大小的梯度

Android 相对于屏幕大小的梯度,android,android-drawable,Android,Android Drawable,假设我有一个drawable.xml,如下所示: <?xml version="1.0" encoding="utf-8"?> 我用它作为我的主要布局的背景 现在我的问题是“400”是一个绝对值,它不取决于密度,也不取决于屏幕的大小。结果是,在小型手机和桌面上,这种xml的图形呈现方式截然不同 有没有办法将渐变中心与屏幕的大小联系起来,以便所有屏幕上的可绘制图形都相等 谢谢。另一种解决方案是,您可以使用百分比设置渐变半径大小。安卓医生说: 可能是一个分数值,它是一个

假设我有一个drawable.xml,如下所示:

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


我用它作为我的主要布局的背景

现在我的问题是“400”是一个绝对值,它不取决于密度,也不取决于屏幕的大小。结果是,在小型手机和桌面上,这种xml的图形呈现方式截然不同

有没有办法将渐变中心与屏幕的大小联系起来,以便所有屏幕上的可绘制图形都相等


谢谢。

另一种解决方案是,您可以使用百分比设置渐变半径大小。安卓医生说:

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


不幸的是,该字段不接受%,它只喜欢整数。哦,我检查了你的文档,实际上你是正确的,但它似乎不起作用。。。奇怪的百分比只对棒棒糖有效,至少从我的测试来看,这就是行为。对于棒棒糖之前的版本,您必须通过编程或通过不同的dimen值来设置它。我相信您已经看到了另一个stackoverflow答案,解释了百分号仅除以100,而值an实际上并不是人们所期望的真实%。如果有一天有人来到这里,我就把这个放在这里。
<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" />