图层列表未正确显示项目 安卓.



我有两个形状可绘制的xml文件,我在图像按钮上使用。一个包含一个环,另一个包含一个足够小的椭圆形,可以放入较大的环中,类似于单选按钮。在此图像 https://i.stack.imgur.com/Uj3aj.jpg 中,您可以看到(从左到右)环、较小的中间椭圆形以及显示两者的图层列表视图的组合图像。这不起作用,而是显示一个完整的椭圆形填充。

这是环 xml:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadiusRatio="3"
android:thickness="1dp"
android:useLevel="false">
<solid android:color="#1976D2" />
<size
    android:height="20dp"
    android:width="20dp" />
</shape>

这是椭圆形的 xml:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid android:color="#1976D2" />
<size
    android:height="7dp"
    android:width="7dp" />
</shape>

下面是图层列表 xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ring_select" />
<item android:drawable="@drawable/ring_center" />
</layer-list>

我不熟悉分层列表,因为我是安卓新手。 我做错了什么?

如果另一个人在知识渊博的谷歌的指导下来到这个页面......

我有一个可能对您有用也可能无效的解决方法:不要使用 <scale> ,请尝试<inset> .您可以使用<item>android:top/android:bottom/android:left/android:right<inset>android:insetXXX的组合来调整图像大小

您可以执行一些操作,例如相对于源图像的尺寸设置每个插图值的边。例如,如果你有一个 64 像素宽的图像,并且想将其减少 50%,你可以为每边做 (64/4 = 16<</p>

div class="one_answers">

我终于找到了答案。基本上,前面的椭圆需要将其添加到其行中:

<item android:top="10dp" android:bottom="10dp" android:left="10dp" android:right="10dp">

尺寸需要相同,因为这是一个椭圆形。我仍然不确定为什么椭圆形拉伸到戒指的整个尺寸,特别是因为尺寸已经定义。 如果有人知道为什么顶部椭圆形会这样拉伸,请告诉我。

最新更新