ImageView相信是Android开发人员再熟悉不过的一个控件了,在一般情况下基本的ImageView也都能满足我们的开发需求,但相信大家也都遇到过ImageView无法满足实际需求的情况,这次我就遇到了,先来看下需求:
1)可以设置成圆形ImageView
2)可以设置成圆角矩形ImageView
3)可以根据要求指定哪个角是圆角,哪个角是直角!!!
前两个需求相信大多数同学都做过,不多说;
至于最后一个,先来看看已实现的效果图,再进行剖析!
成果展示:

实现剖析:
我们在做圆形跟圆角矩形的时候会在onDraw()方法中分别调用canvas.drawCircle()和canvas.drawRoundRect()来进行相应的绘制。其中调用canvas.drawRoundRect()能将圆角矩形很好的画出来,但是这样做会将四个角都画成圆角,而无法实现指定个别角为圆角。那怎么办呢?
既然canvas.drawRoundRect()只能把一个圆角矩形完整的画出来,那我们先把这个圆角矩形画出来,然后哪个角不希望它是圆角的,我们再把相应的直角画回来就好了。这就是基本的实现思路了!具体的看代码吧!
VarietyImageView:





attr:

使用:

转发请注明出处!!!
下载地址:http://download.csdn.net/detail/sinat_31841263/9906825
csdn:http://my.csdn.net/?ref=toolbar
网友评论