Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)

 

ImageView相信是Android开发人员再熟悉不过的一个控件了,在一般情况下基本的ImageView也都能满足我们的开发需求,但相信大家也都遇到过ImageView无法满足实际需求的情况,这次我就遇到了,先来看下需求:

1)可以设置成圆形ImageView

2)可以设置成圆角矩形ImageView

3)可以根据要求指定哪个角是圆角,哪个角是直角!!!

前两个需求相信大多数同学都做过,不多说;

至于最后一个,先来看看已实现的效果图,再进行剖析!

成果展示:

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第1张图片

 

实现剖析:

 

我们在做圆形跟圆角矩形的时候会在onDraw()方法中分别调用canvas.drawCircle()和canvas.drawRoundRect()来进行相应的绘制。其中调用canvas.drawRoundRect()能将圆角矩形很好的画出来,但是这样做会将四个角都画成圆角,而无法实现指定个别角为圆角。那怎么办呢?

既然canvas.drawRoundRect()只能把一个圆角矩形完整的画出来,那我们先把这个圆角矩形画出来,然后哪个角不希望它是圆角的,我们再把相应的直角画回来就好了。这就是基本的实现思路了!具体的看代码吧!

VarietyImageView:

 

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第2张图片

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第3张图片

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第4张图片

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第5张图片

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第6张图片

attr:

 

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第7张图片

 

 

 

 

 

 

 

 

使用:

 

Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)_第8张图片

 

 

 

 

 

 

 

 

转发请注明出处!!!

下载地址:http://download.csdn.net/detail/sinat_31841263/9906825

csdn:http://my.csdn.net/?ref=toolbar

 

你可能感兴趣的:(Android开发)