Android圆角图片和圆形图片实现总结

Posted 王三的猫阿德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android圆角图片和圆形图片实现总结相关的知识,希望对你有一定的参考价值。

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/52945791

1. 概述

       android研发中经常会遇见圆角或者圆形图片的展示,但是系统中ImageView并不能直接支持,需要我们自己做一些处理,来实现圆角图片或者圆形图片,自己最近对这块的实现做了一下总结,看以下几种实现方法。

  • 图层叠加,上层覆盖一层蒙版,遮挡图片,让图片展示出圆角或者圆形效果
  • 重新绘制
    • BitmapShader
    • Xfermode
    • RoundedBitmapDrawable
  • CardView,使用官方控件,自动裁剪,达到圆角或者圆形效果。(5.0以上系统)

       第一种方法,很傻,不太优雅,不推荐这种方法,了解这种方法是因为确实看见有人这么做过。推荐使用第二种方法,重新绘制图片,不仅可以绘制出四角圆角图片,还可以绘制出底部/顶部/左边/右边圆角效果,非常方便。如果想要偷懒,可以直接使用RoundedBitmapDrawable来实现圆角照片效果。而第三种方法,使用CardView控件有很大的局限性,它只在5.0以及以上的系统中有效。

下面就来看一下各种方法的具体情况吧。

2. 图层叠加

图层叠加原理很简单,就是在一张图片上面叠加一层图,覆盖部分,让图片展示成圆角。具体原理可以参考下面这张图。