按道理来讲,实现圆角很简单,在shape中设置corners即可。但是有时候会出现即使设置了也不会出现圆角的效果。
属性解释
-
corners:设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角。
android:radius 圆角半径,会被下面每个特定的圆角属性重写
android:topLeftRadius 左上角的半径
android:topRightRadius 右上角的半径
android:bottomLeftRadius 左下角的半径
android:bottomRightRadius 右下角的半径
问题与解决
比如我想设置左边两个角为圆角,正常思路是:
<corners
android:topLeftRadius="8dp"
android:topRightRadius="8dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
/>
但实际情况是,这样并不会出现圆角的效果。
正确的做法是:
<corners
android:radius="2dp" //这里要首先设置
android:topLeftRadius="8dp"
android:topRightRadius="8dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
/>
此时,在Android studio 中看预览效果还是4个圆角, 但实际运行是满足的。
- 注意以下几点
1、在设置圆角时,圆角半径的大小必须大于1,否则是没有圆角效果的。
2、如果你想单独设置某几个角是圆角, 你必须首先声明 radius 属性(必须大于1),
然后在其他四个角的属性中设置每个角的实际想要的半径大小, 不想圆角的设置为("0dp").