当前位置:网站首页>通过LayerDrawable实现进度条的功能
通过LayerDrawable实现进度条的功能
2022-04-22 09:42:00 【建人尹口】
效果图如下:

首先背景图片如下,底层是背景,上层是进度条颜色
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="6dp" />
<solid android:color="#23252c" />
</shape>
</item>
<item android:width="0dp" android:id="@+id/progress_bg">
<shape android:shape="rectangle">
<gradient android:startColor="#006580df"
android:endColor="#ff6580df"
android:angle="0"/>
<corners android:topLeftRadius="6dp"
android:bottomLeftRadius="6dp"/>
</shape>
</item>
</layer-list>
再通过传递的进度值,动态修改上述图片上层图片的宽度,处理逻辑如下:
LayerDrawable rootBg = (LayerDrawable) mRootView.getBackground();
Drawable progressBg = rootBg.findDrawableByLayerId(R.id.progress_bg);
progressBg.setBounds(0, 0,(int) (mRootView.getWidth() * progress / 100L), getHeight());
关键代码就是findDrawableByLayerId,通过这个方法函数可以获取LayerDrawable中需要的某层图片。再更新该drawable的bound即可实现。
版权声明
本文为[建人尹口]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u012758497/article/details/105864554
边栏推荐
猜你喜欢

超越iTerm! 号称下一代终端神器,功能贼强大!

Sorting of remote sensing deep learning target detection data set
![[go] program flow control](/img/57/ef534941b60f85593c395fe1c10fb9.png)
[go] program flow control

GS waveform analysis of depth resolved MOS transistor Kia MOS transistor

P型MOS管开关电路及工作原理详解-KIA MOS管

Matplotlib tutorial 04 --- drawing commonly used graphics

Beyond iterm! Known as the next generation terminal artifact, powerful!

一文MOS管串联并联驱动应用解析-KIA MOS管

MySQL多实例安装方法一

内存管理-
随机推荐
杰理之CPU性能测试【篇】
MOS tube driving circuit and precautions - Kia MOS tube
QT布局管理复习
Heap overflow of kernel PWN basic tutorial
Beyond iterm! Known as the next generation terminal artifact, I can't put it down after using it!
GS waveform analysis of depth resolved MOS transistor Kia MOS transistor
云原生爱好者周刊:寻找 Netlify 开源替代品
matplotlib教程04---绘制常用的图形
SQL 创建数据库
基于MOSFET控制的大范围连续可调(0~45V) 的小功率稳压电源设计实例
L3-003 社交集群 (30 分) (并查集
etcd 如何实现同步监听
杰理之AI Server【篇】
Matplotlib tutorial 04 --- drawing commonly used graphics
问题解决:dpkg-deb: error: package name has characters that aren‘t lowercase alphanums or ‘-+.‘
L2-033 简单计算器 (25 分)
支持AUTOSAR Classic以及Adaptive平台的DEXT诊断数据库
深度学习遥感场景分类数据集整理
三极管、场效应管和MOS管三者的工作原理
Review of QT layout management