美文网首页
Android-->如何快速写出属于自己的圆角图片控件

Android-->如何快速写出属于自己的圆角图片控件

作者: angcyo | 来源:发表于2017-06-08 18:00 被阅读62次

    客官请看图

    image.png

    无处不在的圆角, 到处满天飞开源库, 是时候写一个属于自己的圆角控件了.

    原理

    通过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扫码加群, 小伙伴们在等着你哦!

    关注我的公众号, 每天都能一起玩耍哦!

    相关文章

      网友评论

          本文标题:Android-->如何快速写出属于自己的圆角图片控件

          本文链接:https://www.haomeiwen.com/subject/chytqxtx.html