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

这篇博客介绍了如何在Android开发中创建一个名为VarietyImageView的控件,该控件能够实现根据需求指定ImageView的角落是圆角还是直角。开发者通过分析实现过程,展示了如何在onDraw()方法中结合canvas.drawCircle()和canvas.drawRoundRect()来绘制,并提供了一个创新的解决方案,即先画出整个圆角矩形,然后针对需要直角的角落重新绘制。博客提供了成果展示、实现剖析、属性定义和使用方法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

1)可以设置成圆形ImageView

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

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

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

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

成果展示:

 

实现剖析:

 

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

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

VarietyImageView:

 

attr:

 

 

 

 

 

 

 

 

 

使用:

 

 

 

 

 

 

 

 

 

转发请注明出处!!!

下载地址:http://download.youkuaiyun.com/detail/sinat_31841263/9906825

csdn:http://my.youkuaiyun.com/?ref=toolbar

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值