android - 如何根据进度条的饱满度更改进度条的颜色
问题描述
我有一个进度条指示器,它具有当前和最大音量。如果丰满度低于 90%(当前/最大重量),我需要更改条的颜色。做这个的最好方式是什么?
解决方案
您可以使用以下代码在运行时更改进度条颜色:
final ProgressBar progressBar = findViewById(R.id.pb);
Drawable progressDrawable = progressBar.getIndeterminateDrawable();
if (progressDrawable != null && progressBar.getProgress() < 90) {
final Drawable mutateDrawable = progressDrawable.mutate();
DrawableCompat.setTint(mutateDrawable, Color.RED);
progressBar.setProgressDrawable(mutateDrawable);
} else {
final Drawable mutateDrawable = progressDrawable.mutate();
DrawableCompat.setTint(mutateDrawable, Color.GREEN);
progressBar.setProgressDrawable(mutateDrawable);
}
推荐阅读
- python - 从 .csv 文件中读取的数据的动画线图
- c++ - 为什么 GetWindowThreadProcessId 函数不能与命令行一起使用?
- matlab - 访问 Matlab 类属性(又名常量)
- python-3.x - 如何让乌龟变长
- javascript - 附加数字以显示在计算器的屏幕上
- ios - 将展开的值传递给 Text() 成功,但传递给 Link() 会导致“在展开可选值时意外发现 nil”
- javascript - React Native 使用文本输入向 whatsapp 发送消息
- flutter - 我有一个关于将多个事件委托给服务器的问题
- amazon-web-services - 发生错误:ServerlessDeploymentBucket - API: s3:CreateBucket Access Denied
- python - Python:如何调整 XML 文件中的值?