当前位置: 首页 > 知识库问答 >
问题:

如何在android中更改SeekBar颜色?(以编程方式)

东方和煦
2023-03-14

我做了一个均衡器来配合我的应用程序,但我不确定如何改变搜索栏的拇指和进度颜色。默认情况下,它似乎是粉红色的,这不符合我的应用程序的美学。

 SeekBar seekBar = new SeekBar(this);

        seekBar.setId(i);

        seekBar.setLayoutParams(layoutParams);
        seekBar.setMax(upperEqualizerBandLevel - lowerEqualizerBandLevel);

        seekBar.setProgress(mEqualizer.getBandLevel(equalizerBandIndex));
        //seekBar.setBackgroundColor(Color.DKGRAY);
        //seekBar.setDrawingCacheBackgroundColor(Color.DKGRAY);

共有3个答案

笪煌
2023-03-14

您可以通过编程方式更改seekbar thumb和progress的颜色,如下所示:

   seekBar.getProgressDrawable().setColorFilter(Utils.getAccentColor(this), PorterDuff.Mode.SRC_IN);
   seekBar.getThumb().setColorFilter(Utils.getAccentColor(this), PorterDuff.Mode.SRC_IN);
慕胡媚
2023-03-14

虽然使用样式是一个好主意,但它没有提供太多的灵活性,特别是如果您希望以编程方式指定颜色,我建议:

//对于进度,请参阅kBar.getProgressDrawable(). setColorFilter(mThemeColor, PorterDuff.模式。SRC_ATOP);//对于拇指句柄,请参阅kBar.getThumb(). setColorFilter(mThemeColor, PorterDuff.模式。SRC_ATOP);

常献
2023-03-14

要更改Seekbar拇指的颜色,请在style.xml中创建新样式

<style name="SeekBarColor"
  parent="Widget.AppCompat.SeekBar"> 
  <item name="colorAccent">@color/your_color</item> 
</style>

最后,在布局中:

<SeekBar
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:theme="@style/SeekBarColor" />

要更改Seekbar进度颜色,请在Java类中使用此颜色。

seekBar.getProgressDrawable().setColorFilter("yourcolor", PorterDuff.Mode.MULTIPLY);

这两种方法都适用于API

编辑

通过Java代码更改SeekBar拇指的颜色。

 seekBar.getProgressDrawable().setColorFilter(getResources().getCo‌​lor(R.color.your_color‌​), PorterDuff.Mode.SRC_ATOP);
 类似资料:
  • 问题内容: 在android中,我们可以通过以下方式更改光标颜色: 。 我们如何动态地做到这一点? 在我的情况下,我将可绘制的光标设置为白色,但是我需要将其更改为黑色。怎么办? 问题答案: 使用一些反射对我有用 Java: XML: 您可以使用不需要XML的方法:

  • 在Android系统中,我们可以通过以下方式更改光标颜色: android:textCursorDrawable=“@drawable/black\u color\u cursor”。 我们如何动态地做到这一点? 在我的情况下,我已经将光标绘图为白色,但我需要改变黑色怎么办?

  • 我已经读过一些关于颜色的线程,但所有这些线程都必须通过style.xml进行设置。 现在我用这个来确定颜色。 是否可以不使用XML,例如使用代码来更改SwitchCompat/Checkbox的颜色?

  • 我正在尝试通过代码更改白色标记图像的颜色。我已经阅读了下面的代码应该改变颜色,但我的标记仍然是白色的。 我错过了什么吗?有没有其他方法可以更改位于我的res文件夹中的可绘制对象的颜色?

  • 关于这个话题有很多帖子,但我找不到一个有用的。 我有一个未嵌入导航控制器的视图控制器。我想把状态栏的颜色改成黑色。 如何在Swift 3中设置状态栏样式 改变行info.plist查看基于控制器的状态栏外观并将其设置为NO didFinishLaunchingwith Options中appDelegate.swift的更改

  • 我想更改搜索栏的进度颜色和拇指颜色。我使用drawable更改进度颜色,但进度厚度已更改。有没有办法改变拇指和进度的颜色。 形象 我想像图像上的第二个一样改变默认的搜索栏的颜色。