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则不同。有什么解决方案吗?