Android 仿应用宝下载进度条

一、介绍一个横向进度条下载完成区域有一个滑块不断从左往右滑动(最开始就是被这个吸引的,就想着这个怎么实现的)进度条中间显示当前进度,值得注意的是,进度条文本包含在下载区域中的部分显示为白色点击暂停,进度条颜色改变,进度文本改变二、分析根据以上简单介绍,可以抓住要实现的重难点是上面的第2、3点。 1. 进度条文本包含在下载区域中的部分显示为白色怎么实现?这个和歌词变色的效果是一样的,所以实
摘要由CSDN通过智能技术生成

一、介绍

yyb

  1. 一个横向进度条
  2. 下载完成区域有一个滑块不断从左往右滑动(最开始就是被这个吸引的,就想着这个怎么实现的)
  3. 进度条中间显示当前进度,值得注意的是,进度条文本包含在下载区域中的部分显示为白色
  4. 点击暂停,进度条颜色改变,进度文本改变

二、分析

根据以上简单介绍,可以抓住要实现的重难点是上面的第2、3点。

 1. 进度条文本包含在下载区域中的部分显示为白色怎么实现?

这个和歌词变色的效果是一样的,所以实现原理应该差不多。canvas有一个save的方法,然后设置成CLIP_SAVE_FLAG标志,这个标志的解释是restore the current clip when restore() is called.然后结合canvas的clip方法和restore方法就能实现。后文见代码④。

   2.  下载完成区域有一个滑块不断从左往右滑动怎么实现?

首先想到的是画这样一个滑块(其实是一张图片),然后不断根据当前进度修改位置实现移动。需要注意的是这个滑块的移动特点: 滑块的右边界开始进入,最后左边界消失,而且只在下载完成这个区域内有显示(右边界超出下载完成右边界部分不显示)这让我想到两个图层重叠时的显示模式,再看看这幅图,那么这里就可以使用SRC_ATOP模式。

这里写图片描述

三、实现

1.自定义属性

<declare-styleable name="FlikerProgressBar">
    <attr name="textSize" format="dimension|reference"/>

    <attr name="loadingColor" format="color|reference"/>

    <attr name="stopColor" format="color|reference"/>

</declare-styleable>
  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值