美文网首页
自定义圆形View的两种方式

自定义圆形View的两种方式

作者: shuixingge | 来源:发表于2016-08-11 09:42 被阅读27次

方法一:BitmapShader+Matrix

(1)继承自ImageView,不用处理wrap_content和padding问题。
(2)重写onMesure()方法,得到测量宽高,然后取最小值,作为半径。然后设置宽高为它们之间的最小值。
(3)得到图片对应的Drawable,转化为相应的Bitmap。(转化的方法)
(4)根据得到的Bitmap创建BitmapShader;根据Bitmap和View得到缩放比;
给BitmapShader设置Matrix;
(5)onDraw绘制
(6)onSavaInstantState()和onRestoreInstantState()存储半径。

方法二:Xfermode

(1)继承自ImageView,不用处理wrap_content和padding问题。
(2)重写onMesure()方法,得到测量宽高,然后取最小值,作为半径。然后设置宽高为它们之间的最小值。
(3)得到图片对应的Drawable,转化为相应的Bitmap。(转化的方法)
(4)创建View对应的的Bitmap。绘制圆形。
(5)采用的是DST_IN模式。先绘制图片,在绘制View(形状)

相关文章

网友评论

      本文标题:自定义圆形View的两种方式

      本文链接:https://www.haomeiwen.com/subject/kbnjsttx.html