Android圆角ViewGrup/View库(可加边框),妈妈再也不用担心设计圆角了!

释放双眼,带上耳机,听听看~!

项目地址:RoundCorners

比较常用的ViewGroup和View的圆角实现(可加边框),一发治好设计的圆角病。
如果喜欢,觉得好用,麻烦各位为我的Github点一个star,谢谢!

文章同步可能不及时,大家可以去Github查看最新代码。

Demo

效果预览

特点

  • LinearLayout、RelativeLayout、FrameLayout支持圆角
  • ImageView、TextView、View、Button支持圆角
  • CircleImageView(圆形图片)
  • 支持边框(不遮挡图片)
  • 可正常设置ripple(波纹不会突破边框)
  • 使用 xml 或者 代码 进行配置,使用简单
  • ……

基本用法

Step 1. 添加JitPack仓库
在项目根目录下的 build.gradle 中添加仓库:

allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}

Step 2. 添加项目依赖

dependencies {
implementation 'com.github.KuangGang:RoundCorners:1.0.4'
}

Step 3. 在布局文件中添加需要的RoundCorners

<com.kproduce.roundcorners.CircleImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:src="https://www.jianshu.com/p/3051b5d60c7c/@mipmap/ic_test"
app:rStrokeColor="@android:color/holo_red_dark"
app:rStrokeWidth="5dp" />
<com.kproduce.roundcorners.RoundImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="https://www.jianshu.com/p/3051b5d60c7c/@mipmap/ic_test"
app:rRadius="30dp"/>
<com.kproduce.roundcorners.RoundTextView
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@android:color/holo_blue_dark"
android:gravity="center"
android:text="Hello!"
android:textColor="@android:color/white"
android:textSize="40sp"
app:rRightRadius="30dp" />
<com.kproduce.roundcorners.RoundRelativeLayout
android:layout_width="200dp"
android:layout_height="200dp"
app:rTopRightRadius="30dp"
app:rBottomRightRadius="30dp"
app:rStrokeColor="@android:color/holo_green_dark"
app:rStrokeWidth="5dp">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark" />
</com.kproduce.roundcorners.RoundRelativeLayout>
<com.kproduce.roundcorners.RoundTextView
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@android:color/holo_blue_dark"
android:gravity="center"
android:text="Hello!"
android:textColor="@android:color/white"
android:textSize="40sp"
app:rLeftRadius="50dp"
app:rRightRadius="50dp"/>
……

支持的属性、方法

属性名 含义 默认值 方法
rRadius 统一设置四个角的圆角半径 0dp setRadius(int radius)
rLeftRadius 左边两个角圆角半径 0dp setRadiusLeft(int radius)
rRightRadius 右边两个角圆角半径 0dp setRadiusRight(int radius)
rTopRadius 上边两个角圆角半径 0dp setRadiusTop(int radius)
rBottomRadius 下边两个角圆角半径 0dp setRadiusBottom(int radius)
rTopLeftRadius 左上角圆角半径 0dp setRadiusTopLeft(int radius)
rTopRightRadius 右上角圆角半径 0dp setRadiusTopRight(int radius)
rBottomLeftRadius 左下角圆角半径 0dp setRadiusBottomLeft(int radius)
rBottomRightRadius 右下角圆角半径 0dp setRadiusBottomRight(int radius)
rStrokeWidth 边框宽度 0dp setStrokeWidth(int width)
rStrokeColor 边框颜色 Color.WHITE setStrokeColor(int color)

原理浅解

Android View的绘制流程
View的绘制看一下这篇文章即可,代码版本比较早,但是逻辑基本相同。

  1. 使用Path的addRoundRect方法,将需要剪切的圆角半径进行设置。
  2. 所有View和ViewGroup的绘制都需要经过draw方法,在draw结束之后使用第一步的Path进行画布切割。
  3. 注意在draw中减少创建对象次数。

版本记录

版本号 更新内容
1.0.4 1.代码设置圆角、边框尺寸支持浮点型
2.删除RoundViewPager
1.0.3 增加代码设置属性
1.0.2 1.增加边框
2.增加RoundButton/RoundViewPager
1.0.1 1.修复低版本系统圆角View黑框问题
2.增加CircleImageView
1.0.0 First Version

人已赞赏
Android文章

android 自定义阴影 ShadowView

2020-2-23 19:27:19

Android文章

android中MVP模式

2020-2-23 21:27:23

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索