Android 从SVG设置图层列表项

Android 从SVG设置图层列表项,android,svg,layer-list,Android,Svg,Layer List,我有一个有趣的问题 <layer-list> <item> <shape android:shape="oval"> <size android:width="@dimen/cb_shape_size" android:height="@dimen/cb_shape_size"/> <solid android:color="@color/

我有一个有趣的问题

<layer-list>
        <item>
            <shape android:shape="oval">
                <size android:width="@dimen/cb_shape_size" android:height="@dimen/cb_shape_size"/>
                <solid android:color="@color/cb_unchecked_solid"/>
                <stroke android:width="@dimen/cb_shape_stroke"
                        android:color="@color/cb_checked_stroke"/>
            </shape>
        </item>
        <item android:drawable="@drawable/main_cb_gps_off"
              android:gravity="center"/>
    </layer-list>

main\u cb\u gps\u off是一个svg文件。 Android Studio中的预览如下所示: 但当我在手机上运行项目时,视图是这样的(Android4.4.2): 当我在Android6.0手机上运行该项目时,视图与AndroidStudio的预览相同。 同时,我发现:

<layer-list>
            <item android:drawable="@drawable/main_cb_gps_off"
                  android:gravity="center"/>
        </layer-list>

此代码在Android4.4.2中运行,svg文件的大小正常。
所以我不知道为什么当“层列表”有两个项目时,svg文件的siez会变大。我想知道。任何解决方案?

您可以在SVG xml文件中设置大小,如果您将宽度和高度的大小声明为
100dp
,图层列表将使用该值绘制图标


如果需要增大或减小大小,请在xml文件中进行。

我也遇到了同样的问题,我在
中使用了两个单独的图像视图,使用了
android:layout\u gravity=“center”

如果在
图层列表中使用
可绘制的
,它将被缩放以适合它所在的视图

从文件中:

所有可绘制项目都会缩放以适合包含视图的大小, 默认情况下。因此,将图像放置在不同位置的图层列表中 位置可能会增加视图的大小,并且某些图像会根据需要进行缩放 合适

为避免缩放,必须使用
位图

要避免缩放列表中的项目,请在
元素,用于指定可绘制对象并定义要绘制的重力 不可缩放的东西,如“中心”


From:

主\u cb\u gps\u off是一个svg文件
,相反,我认为主\u cb\u gps\u off是一个可矢量绘制的文件。它们不能互换。VectorDrawable使用SVG结构的有限子集。而底层xml则不同。有什么解决方案吗?