gpt4 book ai didi

android - 更改android中进度条背景的颜色

转载 作者:行者123 更新时间:2023-11-29 19:31:10 25 4
gpt4 key购买 nike

我有一个进度条,它的外观是在一个 xml 文件中定义的:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="@dimen/round_corners_elements" />
<solid android:color="@color/blue_50" />

<stroke android:width="1px" android:color="@color/light_gray" />
</shape>
</item>

<item android:id="@android:id/progress">
<clip android:clipOrientation="horizontal" android:gravity="left">
<shape>
<corners
android:radius="@dimen/round_corners_elements"
/>
<solid android:color="@color/signaling_color" />
<stroke android:width="1px" android:color="@color/light_gray" />
</shape>
</clip>
</item>

</layer-list>

但是由于我需要动态地将背景颜色 (blue50) 更改为任何其他颜色,所以我失败了。任何人都知道我如何以编程方式更改它?进度可以保持原样。特别之处在于,进度条是圆角的,这是必须的。我尝试了几种方法,但没有一种对我有用。

setBackgroundTintList didn't worked as is only available >API21

int[][] states = new int[][] { new int[] { android.R.attr.background }, new int[] { -android.R.attr.process } };
int[] colors = new int[] { Color.parseColor("#000000"), Color.BLACK };
ColorStateList myList = new ColorStateList(states, colors);
progressBar.setBackgroundTintList(myList);
progressBar.setBackgroundTintMode(PorterDuff.Mode.SRC_OVER);

setBackgroundColor Also had no effect:

 progressBar.setBackgroundColor(ContextCompat.getColor(this, R.color.white));

有人知道吗?

最佳答案

您必须获得 LayerDrawable ProgressBar 使用然后要么

如果我没记错的话,<shape>标签导致 GradientDrawable 由系统在运行时创建,并且方便地具有类似 setColor() 的方法

关于android - 更改android中进度条背景的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com