兼容低版本的 Material Design ProgressBar

博客分享了如何在Android应用中实现兼容低版本的Material Design风格ProgressBar,包括实际效果展示、实现思路和源码解析。难点在于进度条的模糊效果和长度变化,通过自定义控件和动画实现。
摘要由CSDN通过智能技术生成

最近在开发的 App 需要严格遵循 Material Design,PM 天天来提各个控件要改这改那的,这几天我就在想办法把进度条改成 Material Design 的进度条。虽说我们现在用的进度条能在 Android Lolipop 之后的版本显示成符合规范的效果,但 PM 说之前的版本也要能显示这个效果,让我想办法弄好。最后当然是弄好了,所以今天写博客出来和大家分享一下:

实际效果

这个效果初看起来其实满简单的,不就一个进度条会从左到右移动嘛,所以按照这个思路我很快就捣鼓了个控件出来给 PM 看,结果就被喷了…………

因为仔细看的话会发现,他的进度条里还有一个模糊效果,而且进度条移动的时候会变长和变短,这两点才是真正的实现技术难点。

实现思路

刚开始我没啥思路,而且想到还有很多别的活没干,头疼的很,就想着把 Android Lolipop 里这个控件实现的代码拷进项目里,看看能不能直接用起来。然而并不能够…………因为在 Android Lolipop 的实现中,调用了一个叫做 AnimatedVectorDrawable 的类,这个类只能在 Android Lolipop 之后的版本使用,也就意味着我偷懒的想法流产了……

于是我只能另辟蹊径了……

最后我想到,能不能继承 ProgressBar 类,通过自定义 ProgressBar 类的进度条来实现这个效果呢?毕竟 ProgressBar 已经实现了模糊的效果了,只要我能搞定那个变长变短的玩意就可以收工了。

大家可以看看 ProgressBar 的效果:

不妨把中间的颜色设置为想要的进度条颜色,两端的颜色设置为模糊的颜色:

代码:

public class MaterialProgressBar extends ProgressBar {
   
    private static final int INDETERMINATE_MAX = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值