如何在XML中定义易于重用的基本形状(或渐变或角落)?
我有大约十几个可重复使用的可绘制渐变,除了起始和结束颜色之外都是相同的。希望将相同的部分定义在其他地方,并为每种不同的渐变创建一个XML文件,仅定义起始和结束颜色。这可能吗?
这是基础内容:
我有大约十几个可重复使用的可绘制渐变,除了起始和结束颜色之外都是相同的。希望将相同的部分定义在其他地方,并为每种不同的渐变创建一个XML文件,仅定义起始和结束颜色。这可能吗?
这是基础内容:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:type="linear"
android:angle="270"
android:startColor="#e1ffffff"
android:endColor="#e100ff00">
<stroke android:width="1dp"
android:color="#ff000000" />
<corners android:radius="4dp" />
</gradient>
</shape>
我想要在每个可绘制的 XML 文件中覆盖 startColor 和 endColor(还有可能是圆角半径或其他属性)。
我尝试使用父级和样式,但它们都没有使用任何属性。例如:
<style name="base_gradient">
<item name="android:angle">270</item>
<item name="android:type">linear</item>
<item name="android:startColor">#e1ffffff</item>
<item name="android:endColor">#e100ff00</item>
</style>
然后可绘制对象看起来像:
<gradient style="@style/base_gradient" />
那行不通。我尝试将上述内容放入自己的XML文件中,然后对每个可绘制项都执行此操作:
<gradient parent="@drawable/base_gradient" />
那也行不通。
有没有办法做到这一点?