Android CircleImageView圓形ImageView深刻淺出

重點說一說CircleImageView和附錄文章1的異同,在開發中如何在特定狀況下該選擇何種技術實現方案。
(一)附錄1的RoundedBitmapDrawable是谷歌官方的圓形實現,RoundedBitmapDrawable的最大特色是能夠正在上層Java代碼中靈活定製如邊角弧度、圓角矩形、把一個矩形處理成圓形圖、橢圓形圖等等,可是RoundedBitmapDrawable沒有提供直接定義邊框的功能,好比,就像上圖中的圓形圖,邊緣部分要加必定厚度的外層邊框線,則RoundedBitmapDrawable沒法直接實現。
(二)有些開發狀況中,不必定非要把設置、實現圓形圖的代碼所有放在上層Java代碼中寫,而只是想寫在xml佈局文件中,那麼RoundedBitmapDrawable就無法直接在xml佈局文件中寫,而CircleImageView則直接能夠在xml中靈活定義邊框線厚度、顏色等等。
(三)CircleImageView顧名思義,專業處理圓形圖,CircleImageView不像RoundedBitmapDrawable那樣還能夠製做圓角矩形、橢圓圖等等。服務器

總結:
(一)假設若是僅僅只是在上層Java代碼中設置一個圓形圖(好比常見的開發場景中設置圓形用戶頭像),那麼此時在xml佈局中先寫好一個ImageView,而後上層Java代碼從服務器讀取一個頭像的byte字節,轉化爲Bitmap,而後經過RoundedBitmapDrawable處理成圓形drawable設置到ImageView中,那麼這種開發場景就能夠簡單的使用RoundedBitmapDrawable。
(二)若是對圖像的UI設計要求變得複雜,好比加邊框、邊線厚度、邊線顏色等等都要有,且不一樣的圓圖要有必定的遮蓋等等,那這種狀況下就再也不合適用RoundedBitmapDrawable,而比較適合用CircleImageView。佈局

相關文章
相關標籤/搜索