在此之前,很明显我们需要维护一个控件,它显示一个已填充的给定百分比的进度条。在构建 UI 时,最好考虑一下这些控件,它们不具有任何状态,但会显示父级控件所提供的内容。
所以,让我们开始声明控件
这个控件非常简单,我们接收完成的百分比值,以及正面和背面部分的颜色。主 Container
将背面颜色作为背景,我们将绘制正面部分去覆盖它。它的子节点是 Row
,虽然它只包含一个子节点,但我保留了它,方便你添加另一个 Container
,它可以显示背面的部分或其中的一些信息(例如,剩余的百分比)。通过从 Container
的总宽度中取相同的百分比,计算并显示已完成百分比的 Container
的 width
。
接下来,我们从主要的 App 类开始。
显然,现在我们必须声明 MyHomePage
类,现在这个类应该能够使用我们上面编写的 CustomSlider
控件,并处理手势检测部分,其中用户可以拖动来增加和减少滑块显示的百分比。
这个控件必须是有状态的,因为要追踪其百分比。在这里,我们声明了控件的颜色,并将初始百分比保持为 0.0。另外还要注意,现在我们有一个显示舍入百分比的 Text
,它与 CustomSlider
一起在屏幕上居中。
现在,请注意我们用 GestureDetector
控件包围住了 CustomSlider
控件。我们接下来的工作就是,给控件注入活力,使用 GestureDetector
控件来捕获用户的拖动事件。
让我们看看实现这部分的代码。
这是添加了拖动部分的完整代码。GestureDetector
控件加入了 onPanStart
、onPanUpdate
和 onPanEnd
属性来处理拖动的手势。我希望这些命名能表明其各自的用途。
为了知道用户拖动了多少,我们存储了拖动开始的位置,每次用户移动他/她的手指时,都会在 onPanUpdate
方法中计算距离。接着将距离除以滑块的宽度 200。然后我们简单地将计算完的距离添加到百分比的位置,设置值为 0.0 到 100.0 之间。该值不会超过滑动块的边界,这对于百分比的值来说是自然而然的事情。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
设计模式学习笔记
设计模式系列学习视频
- 以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。
以看到全部内容](https://bbs.csdn.net/topics/618156601)】。**