我试图实现一个组件来为按钮或其他组件制作自定义阴影,我知道使用 9patch 或带有阴影的 png 会更容易,但我想在其状态下也以编程方式更改它的颜色和大小(按下,等),所以我决定尝试使用 9 张图片,全部采用 XML 格式,以便阴影从组件的一侧开始渐变。
<!-- 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 gradientRadius的 android 文档
<shape android:shape="rectangle" >
<gradient
android:endColor="#00FF0000"
android:startColor="#FFFF0000"
android:gradientRadius="18"
android:centerX="100%"
android:centerY="100%"
android:type="radial" />
</shape>
这就是我现在的位置:(我不知道如何设置这个大小以适应它的父视图。
任何帮助将不胜感激,当我完成组件后,我会将代码放入答案中:) 因此典型按钮可以在 xml 中具有可自定义的阴影。
应得组件的图像。
- 编辑 -
我仍然对此感兴趣:) 没有人知道吗?