Android 如何使SeekBar在不同位置改变颜色?
我需要使SeekBar具有3个位置,每个位置都会改变颜色,绿色、黄色和红色。目前,我还处于代码的开始阶段Android 如何使SeekBar在不同位置改变颜色?,android,xml,seekbar,android-seekbar,Android,Xml,Seekbar,Android Seekbar,我需要使SeekBar具有3个位置,每个位置都会改变颜色,绿色、黄色和红色。目前,我还处于代码的开始阶段 <SeekBar android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="10dp" android:max="3"/> [颜色]好的,我想它应该对你有帮助
<SeekBar
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="10dp"
android:max="3"/>
[颜色]好的,我想它应该对你有帮助。我在
colors.xml中创建了:
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="colorGreen">#32CD32</color>
<color name="colorYellow">#D9D919</color>
<color name="colorRed">#cc0000</color>
这也很好,也很有效,我可能会用这个,但你认为seekbar上的指针可以改变颜色,而不是seekbar上的进度线吗?是的,我认为可以改变,但我不确定怎么做,因为我从来没有这样做过。我知道,在xml中,你可以通过android设置:thumbTint=“@color/colorRed”。不幸的是,我不知道如何在java中制作像seek bar这样的颜色变换器。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(progress == 2) seekBar.setProgressDrawable(getDrawable(R.color.colorYellow));
if(progress == 3) seekBar.setProgressDrawable(getDrawable(R.color.colorRed));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}