我正在尝试制作一个从屏幕中间以白色发出的渐变,并在向屏幕边缘移动时变为黑色 .
当我制作像这样的“普通”渐变时,我一直在尝试不同的形状:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#E9E9E9" android:endColor="#D4D4D4"
android:angle="270"/>
</shape>
当使用“椭圆形”形状时,我至少得到了圆形,但没有渐变效果 . 我怎么能做到这一点?'
7 回答
您可以使用
android:type="radial"
获得圆形渐变:在学习新概念时,我总能找到有用的图像,所以这是一个补充答案 .
%p
表示父项的百分比,即我们设置可绘制的任何视图的最窄维度的百分比 . 上面的图像是通过更改此代码中的gradientRadius
生成的my_gradient_drawable
可以像这样在视图的
background
属性上设置中心
您可以使用更改半径的中心
其中小数是
x
和y
的宽度和高度的分数 .文档
以下是documentation的一些注释,更多地解释了一些事情 .
如果您需要更多控制,例如多种颜色和定位,您也可以在代码中执行此操作 . 这是我的Kotlin片段,用于创建可绘制的径向渐变:
基本用法(但可随意调整其他参数):
我想你应该添加android:centerColor
此示例显示从白色到黑色到白色的水平渐变 .
这是完整的xml,具有渐变,斯托克和圆形形状 .