我有一个有趣的问题。
<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_cb_gps_off 是一个svg文件。 预览在Android Studio中喜欢这样: enter image description here 但是当我在手机中运行项目时,视图就像这样:Android4.4.2: enter image description here 当我在Android6.0的手机中运行该项目时,该视图与Android Studio的预览相同。 然后在同一时间,我发现:
<layer-list>
<item android:drawable="@drawable/main_cb_gps_off"
android:gravity="center"/>
</layer-list>
此代码在Android4.4.2中运行,svg文件的大小正常。 所以我不知道为什么当“图层列表”有两个项目时,svg文件的siez会变大。我想知道。任何解决方案?
答案 0 :(得分:1)
您可以在SVG xml文件中设置大小,如果您将其大小声明为100dp
的宽度和高度,则图层列表将使用该值来绘制您的图标。
如果需要增加或减小大小,请在xml文件中进行。
答案 1 :(得分:0)
我遇到了同样的问题,我在<FrameLayout>
中使用了两个单独的ImageView android:layout_gravity="center"
答案 2 :(得分:0)
如果您在drawable
中使用layer-list
,则会缩放它以适合其所在的视图。
来自文档:
缩放所有可绘制项目以适合包含视图的大小, 默认情况下。因此,将图像放在不同的图层列表中 位置可能会增加视图的大小,一些图像缩放为 合适的。
为避免缩放,您必须使用bitmap
:
要避免缩放列表中的项目,请使用内部的
bitmap
元素item
元素指定drawable并定义重力 不能缩放的东西,例如&#34; center&#34;。
来自:https://developer.android.com/guide/topics/resources/drawable-resource#LayerList