我画了一个圆角矩形作为背景:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="6dp" />
</shape>
正如预期的那样,这工作得很好。
现在,我想将其更改为仅对顶角进行圆角,因此我将其更改为:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
</shape>
但是现在所有的角都不是圆角的,我得到了一个普通的矩形。这里我漏掉了什么?
发布于 2015-04-06 21:27:39
试着这样做:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:bottom="-20dp" android:left="-20dp">
<shape android:shape="rectangle">
<solid android:color="@color/white" />
<corners android:radius="20dp" />
</shape>
</item>
</layer-list>
似乎不适合设置不同的矩形圆角半径。所以你可以使用这个黑客。
发布于 2016-04-05 21:02:57
在我的例子中,代码如下
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="10dp" android:bottom="-10dp"
>
<shape android:shape="rectangle">
<solid android:color="@color/maincolor" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
</shape>
</item>
</layer-list>
发布于 2016-05-29 09:48:15
您可能需要阅读此https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
下面是一个注释。
注意:必须(最初)为每个角提供大于1的角半径,否则角不会变圆。如果你不想要圆角,一个变通办法是使用android:radius设置一个大于1的默认圆角半径,然后用你真正想要的值覆盖每个角,在你不想圆角的地方提供零("0dp")。
https://stackoverflow.com/questions/8930555
复制相似问题