內(nèi)容簡介
文章介紹ImageView(方法也可以應(yīng)用到其它View)圓角矩形(包括圓形)的一種實(shí)現(xiàn)方式,四個(gè)角可以分別指定為圓角。思路是利用“Xfermode + Path”
來進(jìn)行Bitmap的裁剪。
背景
圓角矩形實(shí)現(xiàn)的方法應(yīng)該很多,網(wǎng)上一大堆。很懷疑為啥安卓的控件不內(nèi)置這樣的屬性(我不知道有)?
之前用到的網(wǎng)絡(luò)圖片加載庫(UniversalImageLoader等)都自帶“圓形圖片”這樣的功能。這次需要的效果是圓角矩形,而且只有圖片上面左、右兩個(gè)角是圓角。然后藐似沒發(fā)現(xiàn)有這種功能,剛好就自己實(shí)踐下了。
一個(gè)需要強(qiáng)調(diào)的事實(shí)就是,像ImageView這樣的控件,它可以是wrap_content這樣的,最終大小不定,由對(duì)應(yīng)的Drawable或Bitmap資源決定其大小。另一種情況下ImageView的大小是固定的,此時(shí)圖片的實(shí)際填充效果(可視范圍)受到scaleType的影響,不一定和View大小一致,不過往往會(huì)保持圖片寬高比例,使得最終ImageView的寬高和顯示的圖片是一致的。
在畫布上進(jìn)行裁剪時(shí),必須明確要操作的相關(guān)Bitmap的尺寸。由于上面的原因,根據(jù)實(shí)際ImageView大小的確定方式不同,要么是取ImageView的大小來作為整個(gè)“圓角矩形”的范圍,要么是以實(shí)