Android中 如何让水平进度条(ProgressBar)从左往右变化

本文介绍了如何在Android中修改ProgressBar的默认行为,使其从左往右变化,适用于创建游戏场景中的血条效果。通过分析源码和调整Drawable配置,设置clipOrientation和gravity属性,成功实现了自定义进度条。
摘要由CSDN通过智能技术生成

今天尝试做个类似街霸中的游戏场景,头部需要显示PK双方的血条。为了达到一个对称的效果,右边的血条要从左往右减少。
展现血条首先想到的是使用ProgressBar,但是发现都是从右往左减少。google了下,没发现有资料介绍如何配置来实现从左到右变化的效果。万幸的是,我们可以看到源码。那么自己动手,丰衣足食.

 

一、失败的尝试
首先想到的是使用Matrix来做镜像处理。
将ProgressBar中的源码copy出来,建一个自己的进度条MyProgressBar。
当然,这中间要处理很多错误信息。需要定义自己的进度条可配置的属性,样式等等。
修改ProgressBar中的onDraw方法:

跑起来后发现progressBar中存在MinWidth和MaxWidth,不同
情况下会影响布局。无奈下只能跟代码了。

二、成功的尝试
这次跟进了

d.draw(canvas);

这行代码,发现progressBar在构造的时候使用了ClipDrawable. 阅读下文档发下如下介绍:
android:clipOrientation         The orientation for the clip.
android:gravity         Specifies wh

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值