gpt4 book ai didi

java - 如何在运行时动态改变SeekBar的进度颜色?

转载 作者:行者123 更新时间:2023-12-01 22:32:28 24 4
gpt4 key购买 nike

我试图找到解决这个问题的方法,但我尝试的任何方法似乎都无法达到我想要的效果。

在我的应用程序中,我有一个 SeekBar,我想更改其颜色以匹配当前正在播放的文件(用户可以为不同的文件设置不同的颜色)。我的问题是,我无法找到在运行时设置搜索栏的进度和拇指颜色的方法,因为我不知道在应用程序运行之前将使用什么颜色,所以我无法为每种颜色创建 XML 可绘制对象。

如果有人知道如何在运行时更改 SeekBar 的进度和拇指颜色,我将非常感谢他们的帮助。

谢谢,科里 B

最佳答案

对于那些有同样问题的人。从上面的代码我知道你想改变 SeekBar 的颜色我遇到了同样的问题,经过大量搜索后我制定了自己的方法。

public void changeSeekbarColor(SeekBar s,int colorp,int colors,int color b)
{
PorterDuff.Mode mMode = PorterDuff.Mode.SRC_ATOP;

LayerDrawable layerDrawable = (LayerDrawable) s.getProgressDrawable();
Drawable progress = (Drawable) layerDrawable.findDrawableByLayerId(android.R.id.progress);
Drawable secondary = (Drawable) layerDrawable.findDrawableByLayerId(android.R.id.secondaryProgress);
Drawable background = (Drawable) layerDrawable.findDrawableByLayerId(android.R.id.background);
Drawable th = s.getThumb();

// Setting colors
progress.setColorFilter(colorp,mMode);
secondary.setColorFilter(colors,mMode);
background.setColorFilter(colorb, mMode);
th.setColorFilter(colorp,mMode);

// Applying Tinted Drawables
layerDrawable.setDrawableByLayerId(android.R.id.progress, progress);

layerDrawable.setDrawableByLayerId(android.R.id.secondaryProgress, secondary);

layerDrawable.setDrawableByLayerId(android.R.id.background, background);

}

关于java - 如何在运行时动态改变SeekBar的进度颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444822/

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