在Android的shape drawable里,通过gradient标签可以定义渐变背景。如果要使用径向渐变并自定义中心,需要组合type、centerX与centerY等属性。下面直接看一段可运行的XML示例。

一、XML中设置径向渐变中心
径向渐变对应type值为radial。centerX和centerY的取值范围是0到1,表示相对于控件宽高的比例,0.5即居中。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:type="radial"
android:startColor="#ff0000"
android:endColor="#0000ff"
android:centerX="0.3"
android:centerY="0.7"
android:gradientRadius="120dp" />
</shape>
上面将中心设在水平30%、垂直70%的位置,渐变半径用gradientRadius限定。
关键属性说明
android:type:必须设为radial,centerX和centerY才有效。android:centerX:水平中心,0为左边缘,1为右边缘。android:centerY:垂直中心,0为上边缘,1为下边缘。android:gradientRadius:径向渐变半径,可用dp或px。
二、在布局中引用
把文件保存为res/drawable/radial_bg.xml,就能当作背景使用:
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/radial_bg"
android:text="径向渐变" />
三、常见错误
如果只写centerX却忘记把type设成radial,系统会按linear处理,中心偏移无效。另外centerX若使用带百分号字符串如"30%"在某些版本会报错,建议统一用小数。
小结:用shape做径向渐变时,type="radial"加centerX、centerY即可自由设定中心,无需写Java代码。
Androidshapegradient_center修改时间:2026-07-28 02:03:15