Android 自定义seekbar进度颜色逐渐消失
我正在试着制作一个定制的seekbar,它有一个陶瓷色来显示进度。我尝试使用xml中定义的层列表。当我运行代码时,进度的颜色会消失Android 自定义seekbar进度颜色逐渐消失,android,android-layout,android-studio,android-seekbar,Android,Android Layout,Android Studio,Android Seekbar,我正在试着制作一个定制的seekbar,它有一个陶瓷色来显示进度。我尝试使用xml中定义的层列表。当我运行代码时,进度的颜色会消失 <SeekBar android:id="@+id/load_money_seekbar" android:layout_marginTop="@dimen/margin_5dp" android:paddingLeft="@dimen/padding_5" android:paddingRight="@dimen/paddin
<SeekBar
android:id="@+id/load_money_seekbar"
android:layout_marginTop="@dimen/margin_5dp"
android:paddingLeft="@dimen/padding_5"
android:paddingRight="@dimen/padding_5"
android:paddingTop="@dimen/padding_10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerHorizontal="true"
android:indeterminate="false"
android:splitTrack="false"
android:thumb="@drawable/load_money_arrow"
android:max="100"
android:progressDrawable="@drawable/seekbar_loadmoney">
seekbar_loadmoney.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 android:shape="line">
<stroke
android:width="2dp"
android:color="#bbbbbb" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<shape android:shape="line">
<stroke
android:width="2dp"
android:color="#bbbbbb" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="line">
<stroke
android:width="2dp"
android:color="#213D8D" />
</shape>
</clip>
</item>
</layer-list>
请参考屏幕截图
经过大量研究,我得到了答案。我希望seekbar的进度以编程方式显示,用户不能更改seekbar的进度。所以我做了这个
seekbar.setEnabled(false)
这会使seekbar中的进度颜色褪色。通过以下代码,我们可以在不褪色seekbar进度颜色的情况下实现同样的效果
seekbar.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
在做了大量的研究之后,我得到了答案。我希望seekbar的进度以编程方式显示,用户不能更改seekbar的进度。所以我做了这个
seekbar.setEnabled(false)
这会使seekbar中的进度颜色褪色。通过以下代码,我们可以在不褪色seekbar进度颜色的情况下实现同样的效果
seekbar.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});