是否可以在其他矢量可绘制XML文件中包含来自一个XML文件的标记?

时间:2018-03-12 17:57:25

标签: android

我意识到我的可绘制XML文件(向量和动画向量)有很多常见的标签,我想知道是否可以使用一些<include/>类似标签来优化资源的大小。

我知道Android允许使用语法

来使用带有布局的标签
<include layout="@layout/resource_name"/>

但我不确定是否有类似的可绘制文件选项。或者是否有其他方法如何在向量drawable中重用XML文件的相同部分?

1 个答案:

答案 0 :(得分:0)

您没有使用 <aapt:attr> 是吗?因为这是一个生成单独文件的预处理工具,您可以轻松地自己制作单独的文件,从而获得您所寻求的可重用性。

代替:

allInOne.xml

<animated-vector ... >
    <aapt:attr name="android:drawable">
        <vector ...>
            ...
        </vector>
    </aapt:attr>
    <target ... >
        <aapt:attr name="android:animation">
            <objectAnimator ... />
        </aapt:attr>
    </target>
</animated-vector>

你可以:

animated.xml

<animated-vector ... android:drawable="@drawable/vector">
    <target ... android:animation="@animator/animator" />
</animated-vector>

vector.xml

<vector ...>
    ...
</vector>

animator.xml

<objectAnimator ... />

除此之外,我想您可以拆开您的矢量可绘制对象,然后使用 <layer-list> 或其他方式重新组合它们。你不能做的是使用 <include>