Android項目開發(fā)中經(jīng)常會遇見需要實現(xiàn)圓角或者圓形的圖片功能,如果僅僅使用系統(tǒng)自帶的ImageView控件顯然無法實現(xiàn)此功能,所以通過系列文章的形式由簡到繁全方位的介紹一下此功能的實現(xiàn),鞏固一下自身的學習,同時,和廣大網(wǎng)友交流分享

本項目源碼下載地址:鏈接:http://pan.baidu.com/s/1sljdvtF 密碼:xj85

首先看效果圖

seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓seo優(yōu)化培訓,網(wǎng)絡推廣培訓,網(wǎng)絡營銷培訓,SEM培訓,網(wǎng)絡優(yōu)化,在線營銷培訓

首先看一下CircleImageView的主要流程

1. 首先通過setImageXxx()方法設置圖片Bitmap; 
2. 進入構(gòu)造函數(shù)CircleImageView()獲取自定義參數(shù),以及調(diào)用setup()函數(shù); 
3. 進入setup()函數(shù)(非常關(guān)鍵),進行圖片畫筆邊界畫筆(Paint)一些重繪參數(shù)初始化:構(gòu)建渲染器BitmapShader用Bitmap來填充繪制區(qū)域,設置樣式和內(nèi)外圓半徑計算等,以及調(diào)用updateShaderMatrix()函數(shù)和 invalidate()函數(shù); 
4. 進入updateShaderMatrix()函數(shù),計算縮放比例和平移,設置BitmapShader的Matrix參數(shù)等; 
5. 觸發(fā)ondraw()函數(shù)完成最終的繪制。使用配置好的Paint先畫出繪制內(nèi)圓形來以后再畫邊界圓形。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式