Определение 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>

Затем я хотел перезаписать startColor и endColor (и, возможно, радиус углов тоже или любое другое свойство) в XML-файле каждого рисуемого объекта.

Я пробовал использовать и parent, и styles, но ни один из них не использует ни одно из свойств. Например:

<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>

И тогда drawable выглядит так:

<gradient style="@style/base_gradient" />

Это не сработало. Я попробовал аналогичным образом поместить все вышеперечисленное в собственный XML-файл и затем сделать это для каждого drawable:

<gradient parent="@drawable/base_gradient" />

Это тоже не сработало.

Есть ли способ сделать это?

9
задан panda 2 October 2011 в 13:40
поделиться