Android-->如何快速写出属于自己的圆角图片控件
来源:互联网 发布:php自学好找工作嘛 编辑:程序博客网 时间:2024/04/29 22:58
客官请看图
无处不在的圆角, 到处满天飞开源库, 是时候写一个属于自己的圆角控件了.
原理
通过Canvas强大的clip特性, 你要想什么形状的图片都可以的…
class CircleImageView(context: Context, attributeSet: AttributeSet? = null) : AppCompatImageView(context, attributeSet) { val clipPath = Path() val paint: Paint by lazy { Paint(Paint.ANTI_ALIAS_FLAG) } override fun onDraw(canvas: Canvas) { val size = Math.min(measuredHeight - paddingTop - paddingBottom, measuredWidth - paddingLeft - paddingRight) val cx = (paddingLeft + size / 2).toFloat() val cy = (paddingTop + size / 2).toFloat() val cr = (size / 2).toFloat() clipPath.addCircle(cx, cy, cr, Path.Direction.CW) canvas.clipPath(clipPath) super.onDraw(canvas) paint.style = Paint.Style.STROKE paint.color = Color.WHITE canvas.drawCircle(cx, cy, cr, paint)//如果不在外圈绘制一圈圆形的话, 图片的锯齿看起来很丑... }}
写在后面
代码很少, 但是clip的特性, 很好的体现出来了. 你完全使用这个特性, 玩出属于你的浪花.
少年, 你缺少的只是动手. just do.
联系作者
请使用QQ扫码加群, 小伙伴们在等着你哦!
关注我的公众号, 每天都能一起玩耍哦!
阅读全文
0 0
- Android-->如何快速写出属于自己的圆角图片控件
- android自定义控件系列教程----快速打造属于自己的ViewPagerIndicator
- 小白如何快速搭建属于自己的网站
- 属于自己的刷新控件
- 快速开发一个属于自己的android数据库类库
- 快速设计loading加载的gif图片,做一个属于自己的加载图
- 如何快速地编写和运行一个属于自己的MapReduce例子程序
- 如何利用Microsoft Web Browser控件在VC中创建一个属于自己的浏览器
- 如何利用Microsoft Web Browser控件在VC中创建一个属于自己的浏览器
- 如何找到属于自己的兴趣?
- 如何建立起属于自己知识的储存库?
- 如何拥有属于自己的公司
- 如何找到属于自己的理想职业
- 如何找到属于自己的理想职业
- 如何组装配置属于自己的台式机
- 如何组装配置属于自己的台式机
- 如何组装配置属于自己的台式机
- 如何组装配置属于自己的台式机
- 肾经 穴位 和功能
- 使用边缘信息提升全局阈值分割的性能
- 基于Netty解决TCP的粘包拆包问题
- maven项目启动报错。
- Android获取.Gradle文件中的值和Manifests文件中的值
- Android-->如何快速写出属于自己的圆角图片控件
- 数字信号处理 DIT-FFT和IFFT的 C语言程序实现
- canvas基础上:chartjs
- 中位数
- Python-集合的基本使用
- pyhotn3入门基础-3 字符串
- 微信小程序的一些限制
- Spark源码分析之Worker
- python socket编程入门(编写server实例)