Layerlist没有正确显示项目Android

时间:2014-12-17 15:57:40

标签: android xml android-studio shapedrawable layer-list

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

这是环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>

这是layerlist 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>

我不熟悉图层列表,因为我是android新手。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

如果另一个人通过知识分子Google的指导下到这个页面......

我的解决方法可能适用于您,也可能不适合您:尝试使用<scale>而不是<inset>。您可以结合<item>的{​​{1}} / android:top / android:bottom / android:leftandroid:right的{​​{1}调整图像大小

您可以执行以下操作:将每个插入值的边设置为相对于源图像的尺寸。例如,如果您有一个64像素宽的图像并想要将其减少50%,则可以为每一侧做(64/4 = 16)

答案 1 :(得分:0)

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

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

尺寸必须相同,因为这是椭圆形。我仍然不确定为什么椭圆形拉伸到整个戒指的大小,特别是因为尺寸被定义。如果有人知道为什么顶部椭圆形如此伸展,请告诉我。