将彩色 SVG 渐变可绘制对象转换为 Android xml 矢量可绘制对象
Convert a multicolored SVG gradient drawable to Android xml vector drawable
此图片是在 Adobe Illustrator 上创建的,我已将其导出为 SVG 可绘制对象。然后我将它导入 Android Studio。但是渐变没有显示,它已经像透明矩形一样被导入。如何导入或创建这样的渐变?
您可以使用径向渐变轻松做到这一点!你基本上重叠了 4 个光“点”,一个用于红色、黄色、蓝色和绿色。然后将它们垂直 (scaleY
) 和水平 (scaleX
) 移动到正确的位置。
这是一个正确组合的概念证明,您当然需要调整它以完全匹配您的设计/颜色:
这里是 XML。这需要放入 /res/drawable/
文件夹内的 .xml
文件中:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:layout_height="wrap_content">
<solid android:color="@android:color/black" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="@android:color/red"
android:centerX="0.1"
android:centerY="0.1"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#FFFF00"
android:centerX="0.9"
android:centerY="0.1"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#00008B"
android:centerX="0.1"
android:centerY="0.5"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#74ae5b"
android:centerX="0.9"
android:centerY="0.5"
android:endColor="@android:color/transparent" />
</shape></item>
</layer-list>
此图片是在 Adobe Illustrator 上创建的,我已将其导出为 SVG 可绘制对象。然后我将它导入 Android Studio。但是渐变没有显示,它已经像透明矩形一样被导入。如何导入或创建这样的渐变?
您可以使用径向渐变轻松做到这一点!你基本上重叠了 4 个光“点”,一个用于红色、黄色、蓝色和绿色。然后将它们垂直 (scaleY
) 和水平 (scaleX
) 移动到正确的位置。
这是一个正确组合的概念证明,您当然需要调整它以完全匹配您的设计/颜色:
这里是 XML。这需要放入 /res/drawable/
文件夹内的 .xml
文件中:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:layout_height="wrap_content">
<solid android:color="@android:color/black" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="@android:color/red"
android:centerX="0.1"
android:centerY="0.1"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#FFFF00"
android:centerX="0.9"
android:centerY="0.1"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#00008B"
android:centerX="0.1"
android:centerY="0.5"
android:endColor="@android:color/transparent" />
</shape></item>
<item><shape>
<gradient
android:type="radial"
android:gradientRadius="80%"
android:startColor="#74ae5b"
android:centerX="0.9"
android:centerY="0.5"
android:endColor="@android:color/transparent" />
</shape></item>
</layer-list>