首页 > 其他分享 >android中修改progressbar的两种方法

android中修改progressbar的两种方法

时间:2023-05-04 19:34:14浏览次数:36  
标签:自定义 进度条 custom 修改 progressbar android progressBar drawable

1.创建自定义进度条样式

在res/values/styles.xml文件中创建一个自定义样式来指定进度条的颜色。例如,以下样式设置进度的前景色为蓝色,背景色为灰色:

<style name="CustomProgressBar" parent="@android:style/Widget.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/custom_progressbar</item>
    <item name="android:minHeight">10dp</item>
    <item name="android:maxHeight">10dp</item>
</style>

  

接下来,在res/drawable目录下创建一个名为custom_progressbar的XML文件来指定进度条的颜色。例如,以下布局文件显示如何将进度条前景色设置为蓝色,背景色设置为灰色:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#D3D3D3" />
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dp" />
                <solid android:color="#0000FF" />
            </shape>
        </clip>
    </item>
</layer-list>

  

最后,在布局文件中将新的进度条样式应用到ProgressBar控件:

<ProgressBar
    android:id="@+id/progressBar"
    style="@style/CustomProgressBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    android:progress="50" />

  


2.动态修改进度条颜色

在Java代码中,可以使用setProgressDrawable()和setIndeterminateDrawable()方法动态修改进度条的前景和背景颜色。例如,以下代码演示如何将进度条的前景色设置为蓝色,背景色设置为灰色:

ProgressBar progressBar = findViewById(R.id.progressBar);
Drawable progressDrawable = getResources().getDrawable(R.drawable.custom_progressbar);
progressBar.setProgressDrawable(progressDrawable);
Drawable indeterminateDrawable = getResources().getDrawable(R.drawable.custom_progressbar);
progressBar.setIndeterminateDrawable(indeterminateDrawable);

  

其中,getDrawable()方法获取了一个新的可绘制的进度条,该进度条将使用上面所示的自定义颜色。

标签:自定义,进度条,custom,修改,progressbar,android,progressBar,drawable
From: https://www.cnblogs.com/jiazq/p/17372275.html

相关文章

  • ADB更改Android设备屏幕显示方向
    adbshellsettingsputsystemaccelerometer_rotation0 关闭自动旋转屏幕 adbshellsettingsputsystemuser_rotation3 调整显示方向 可选0123 user_rotationValues:0#Protrait1#Landscape2#ProtraitReversed3......
  • SQL Server 修改自增列的标识值
    DBCCCHECKIDENT检查指定表中当前标识值,如有必要,则更改标识值。123456DBCCCHECKIDENT   (      table_name         [,{NORESEED|{RESEED[,new_reseed_value]}}] ) [ WITH NO_INFOMSGS]    参数:tab......
  • CentOS 下修改 WordPress 文件上传大小限制
    CentOS下可以通过修改php.ini来设置WordPress 文件上传大小限制。默认的php.ini文件是在/etc下。(对应的包:php-common)修改下面的几个参数:upload_max_filesize=64Mpost_max_size=64Mmax_execution_time=300修改后重启httpd。$servicehttpdrestart这样上传文......
  • Vue3数据无法显示/数据无法修改
    问题描述:昨天朋友问了我一个关于Vue3的问题,给他解答后,想起貌似自己当初也曾被这个问题困惑过,只不过被善用搜索引擎后找到了问题所在。现在考虑到可能有些朋友搜不到解决方法,所以现在用它的表现形式作为标题,可能更便于搜索到。现在重现一下这个问题:<divv-for="(item,idx)inl......
  • RK3588 Android12 编译打包私有ext4格式vendor.img并挂载到新增vendor_private分区
    一、制作ext4格式的vendor.img使用simg2img工具直接将现有的vendor.img转换成ext4格式的vendor.disk即可 ./out/host/linux-x86/bin/simg2img  out/target/product/ribeye/vendor.img  vendor.disk然后就可以直接挂载到新增分区对应的目录:mount vendor.disk/vendor_......
  • github修改好代码后上传已有仓库
    github修改好代码后上传已有仓库在GitHub上修改代码并将其推送到已有仓库的步骤如下:确保您的本地代码与GitHub仓库中的代码是同步的。您可以使用gitpull命令从远程仓库中获取最新代码并将其合并到您的本地代码中。如果您在本地进行了修改,请确保将其推送到远程仓库之前进行提交......
  • Nacos修改权重报错caused: errCode: 500, errMsg: do metadata operation failed ;caus
    今天修改Nacos权重时报错如下:caused:errCode:500, caused:errCode:500,errMsg:dometadataoperationfailed;caused:com.alibaba.nacos.con。解决方案:停掉nacos服务将nacos文件夹下data中的protocol文件夹删除重启nacos服务即可 ......
  • Windows中批量修改DNS记录
    最近由于公网映射的IP需要更换,有一批DNS记录需要修改。对于使用Windows管理的DNS记录,可以使用Powershell批量导出记录更新后再批量修改。首先使用Powershell将DNS服务器上test.local这个区域里的所有A记录导出Get-DnsServerResourceRecord-ComputerNameITM-ZoneNametest.loc......
  • oracle修改用户密码的方法
    Oracle用户名及默认密码 修改oracle用户的密码有以下方法:普通用户 (1)通过alteruser语法来进行修改,这也是最常见的方式:(2)第二种方式,是通过password命令来修改:从安全性角度来说,推荐大家通过第二种方式来修改用户密码,这样可防止明文密码泄露。sys用户......
  • svn 修改messege log
    工作中用到了修改svn日志信息的情况。网上查找:如何修改SVN已提交项目的messagelog我用到了下面蓝色字体部分。直接在TortoiseSVN中修改过往日志,会提示:DAVrequestfailed;it'spossiblethattherepository'spre-revprop-changehookeitherfailedorisnon-existentAt......