Android XML中具有父级大小的径向梯度
我正在尝试实现一个组件来为按钮或其他组件制作自定义阴影,我知道使用9patch或带有阴影的png会更容易,但我想在其状态下(按下等)以编程方式更改其颜色和大小,因此我决定尝试使用9个图像,全部采用XML格式,因此阴影从组件的侧面开始渐变Android XML中具有父级大小的径向梯度,android,android-layout,android-xml,Android,Android Layout,Android Xml,我正在尝试实现一个组件来为按钮或其他组件制作自定义阴影,我知道使用9patch或带有阴影的png会更容易,但我想在其状态下(按下等)以编程方式更改其颜色和大小,因此我决定尝试使用9个图像,全部采用XML格式,因此阴影从组件的侧面开始渐变 <!-- Left Shadow layer --> <item> <shape android:shape="rectangle" > <gradient android
<!-- Left Shadow layer -->
<item>
<shape android:shape="rectangle" >
<gradient
android:angle="0"
android:endColor="#FFFF0000"
android:startColor="#00FF0000" />
</shape>
</item>
看起来不错,问题出在角落,android:gradientRadius参数现在设置为固定大小,但在上下文帮助中,可以设置为基本大小10%或父大小10%p的百分比,我想要它设置一个100%p半径,这样渐变总是从主色开始,消失在正方形的边缘
--编辑--
关于gradientRadius的android文档
这就是我现在的位置:(我不知道如何设置此大小以适合其父视图
任何帮助都将不胜感激,当我完成组件时,我将把代码放在一个答案中:),这样典型的按钮可以在xml中有可定制的阴影
组件的映像
<!-- Left Shadow layer -->
<item>
<shape android:shape="rectangle" >
<gradient
android:angle="0"
android:endColor="#FFFF0000"
android:startColor="#00FF0000" />
</shape>
</item>
--编辑--
我仍然对这个感兴趣:)没有人有线索吗
我认为您应该放弃xml,实现可绘制的代码。 扩展Drawable类时,可以使用getBounds()将大小设置为矩形。也可以在onBoundsChange方法中动态重新计算。
您还可以轻松构造渐变并在Paint object中使用它们(setShader方法)这张图像是您想要的还是到目前为止您已经得到的?hi@Leaudro,这就是我想要的,我可以通过手动设置其宽度和高度使渐变适合非径向渐变。我无法为角创建径向渐变,因此可以重复使用此形状为通用组件创建阴影。嘿,直到有人阅读此内容!,是的,我也这么认为,但这有点像是在讨好:)