內(nèi)容簡介

文章介紹ImageView(方法也可以應用到其它View)圓角矩形(包括圓形)的一種實現(xiàn)方式,四個角可以分別指定為圓角。思路是利用“Xfermode + Path”來進行Bitmap的裁剪。

背景

圓角矩形實現(xiàn)的方法應該很多,網(wǎng)上一大堆。很懷疑為啥安卓的控件不內(nèi)置這樣的屬性(我不知道有)?

之前用到的網(wǎng)絡圖片加載庫(UniversalImageLoader等)都自帶“圓形圖片”這樣的功能。這次需要的效果是圓角矩形,而且只有圖片上面左、右兩個角是圓角。然后藐似沒發(fā)現(xiàn)有這種功能,剛好就自己實踐下了。

一個需要強調的事實就是,像ImageView這樣的控件,它可以是wrap_content這樣的,最終大小不定,由對應的Drawable或Bitmap資源決定其大小。另一種情況下ImageView的大小是固定的,此時圖片的實際填充效果(可視范圍)受到scaleType的影響,不一定和View大小一致,不過往往會保持圖片寬高比例,使得最終ImageView的寬高和顯示的圖片是一致的。

在畫布上進行裁剪時,必須明確要操作的相關Bitmap的尺寸。由于上面的原因,根據(jù)實際ImageView大小的確定方式不同,要么是取ImageView的大小來作為整個“圓角矩形”的范圍,要么是以實

網(wǎng)友評論