我有两个形状可绘制的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新手。我究竟做错了什么?
答案 0 :(得分:1)
如果另一个人通过知识分子Google的指导下到这个页面......
我的解决方法可能适用于您,也可能不适合您:尝试使用<scale>
而不是<inset>
。您可以结合<item>
的{{1}} / android:top
/ android:bottom
/ android:left
和android:right
的{{1}调整图像大小
您可以执行以下操作:将每个插入值的边设置为相对于源图像的尺寸。例如,如果您有一个64像素宽的图像并想要将其减少50%,则可以为每一侧做(64/4 = 16)
答案 1 :(得分:0)
我终于找到了答案。基本上,前面的椭圆形需要添加到它的行中:
<item android:top="10dp" android:bottom="10dp" android:left="10dp" android:right="10dp">
尺寸必须相同,因为这是椭圆形。我仍然不确定为什么椭圆形拉伸到整个戒指的大小,特别是因为尺寸被定义。如果有人知道为什么顶部椭圆形如此伸展,请告诉我。