Android中利用shape实现圆角

按道理来讲,实现圆角很简单,在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").

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,982评论 25 708
  • 概述 今天我们来探究一下android的样式。其实,几乎所有的控件都可以使用 background属性去引用自定义...
    CokeNello阅读 4,896评论 1 19
  • 每个人都有自己喜欢或崇拜的人,这个人可以称为偶像,也可以称为榜样,总之这个人对你来说有你欣赏的地方。我的一位老师曾...
    建筑小姐姐阅读 211评论 0 0
  • 前几天和一个非常要好朋友牛迪在聊天,听他说起了一段春节相亲的经历。牛迪是个理工男,平时很少有机会和异性接触,导致三...
    河马兄简书阅读 219评论 0 0