自定义实现带阴影进度的ImageView

效果图:

在这里插入图片描述

原理:
1.继承自ImageView,将ImageView分为8个区域,8个节点。
在这里插入图片描述
2.按照100的总进度,除以8,每个区域分配12.5个进度(区域1为0-12.5,区域2为12.5-25,区域3为25-37.5,以此类推),取每个区域的px除以12.5获得每1个进度需要在x轴方向或y方向移动的px值(取名为perX和perY)。
3.给每个节点设置权限值(按100/8分配,节点1为12.5,节点2为25,节点3为37.5,以此类推,到节点8为100)。
4.通过设置的进度,计算出进度落点坐标,比如进度55,区域落在区域6(50-62.5),可以得知坐标为(0, getHeight()/2 + perY*55)。
5.遍历所有节点,将权限大于进度的节点加入Path,同时以中心的(getWidth()/2, getHeight()/2)为起点,4中计算获得的坐标为第二个点加入Path。
6.使用canvas绘制Path,并且在每次重新绘制时重置Path。

Github地址
直接copy代码就可以用了,功能较小,没有做成依赖。
可以的话点个star支持一下,thanks。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值