Android 以编程方式更改进度条的颜色

Android 以编程方式更改进度条的颜色,android,colors,progress-bar,programmatically-created,Android,Colors,Progress Bar,Programmatically Created,我只想以编程方式更改Android中ProgressBar的颜色。 我的问题是,如何为进度设置不同的颜色,为进度栏的“填充”部分设置另一种颜色 例如: 进步应该是绿色的 最后一部分应该是红色的 您不能使用官方API将自定义样式应用于Progressbar 不过,您可能可以使用反射来完成。 Progressbar有一个私有字段mProgressTintInfo,它有以下字段:mProgressTintList和mProgressBackgroundTintList,它们是ColorStateL

我只想以编程方式更改Android中
ProgressBar
的颜色。 我的问题是,如何为进度设置不同的颜色,为进度栏的“填充”部分设置另一种颜色

例如:

  • 进步应该是绿色的

  • 最后一部分应该是红色的


您不能使用官方API将自定义样式应用于Progressbar

不过,您可能可以使用反射来完成。 Progressbar有一个私有字段
mProgressTintInfo
,它有以下字段:
mProgressTintList
mProgressBackgroundTintList
,它们是ColorStateList和
mHasProgressTint
,它们是布尔值


我自己从未尝试过,它可能根本不起作用,或者只在特定的API级别/设备上起作用。

对不起,我的英语很好,我会说西班牙语 您可以实现自己的progressbar,并覆盖“ondraw”方法,使用2个填充矩形和2个填充圆,并使用您自己的颜色


再次,超级对不起我的英语

不可能这样做。 为了实现这一点,您必须开发自己的自定义视图

创建自定义视图,扩展布局,并将该布局用作进度条的背景。为不断增长的进度添加另一个视图(从0dp宽度开始)

添加一个用于设置当前进度的公共方法,并调整进度视图的宽度。

看看这个