Android项目开发中经常会遇见需要实现圆角或者圆形的图片功能,如果仅仅使用系统自带的ImageView控件显然无法实现此功能,所以通过系列文章的形式由简到繁全方位的介绍一下此功能的实现,巩固一下自身的学习,同时,和广大网友交流分享

本项目源码下载地址:链接:http://pan.baidu.com/s/1sljdvtF 密码:xj85

首先看效果图

seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训

首先看一下CircleImageView的主要流程

1. 首先通过setImageXxx()方法设置图片Bitmap; 
2. 进入构造函数CircleImageView()获取自定义参数,以及调用setup()函数; 
3. 进入setup()函数(非常关键),进行图片画笔边界画笔(Paint)一些重绘参数初始化:构建渲染器BitmapShader用Bitmap来填充绘制区域,设置样式和内外圆半径计算等,以及调用updateShaderMatrix()函数和 invalidate()函数; 
4. 进入updateShaderMatrix()函数,计算缩放比例和平移,设置BitmapShader的Matrix参数等; 
5. 触发ondraw()函数完成最终的绘制。使用配置好的Paint先画出绘制内圆形来以后再画边界圆形。

网友评论