Android 自定义SeekBar,在缓冲时同时更改进度颜色和背景颜色
Android 自定义SeekBar,在缓冲时同时更改进度颜色和背景颜色,android,colors,seekbar,android-styles,Android,Colors,Seekbar,Android Styles,我想构建一个自定义SeekBar,它有一个辅助进度条,但默认情况下是从端到端的,并显示缓冲数据的进度。可以将其视为大多数在线视频播放器(如youtube)提供的SeekBar。总之,我们有一个默认的seekbar,它的默认进度条和一个二级进度条,不管主进度/用户拖动seekbar的槽口,它都会填充一种颜色,并且只依赖于缓冲数据 到目前为止,我只是有一个普通的seekbar,它会随着用户的拖动/设置进度而改变颜色
我想构建一个自定义SeekBar,它有一个辅助进度条,但默认情况下是从端到端的,并显示缓冲数据的进度。
可以将其视为大多数在线视频播放器(如youtube)提供的SeekBar。总之,我们有一个默认的seekbar,它的默认进度条和一个二级进度条,不管主进度/用户拖动seekbar的槽口,它都会填充一种颜色,并且只依赖于缓冲数据 到目前为止,我只是有一个普通的seekbar,它会随着用户的拖动/设置进度而改变颜色<谁能帮个忙吗 到目前为止我的代码:
seekbar_progress.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"
android:drawable="@drawable/progress_background_fill"/>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progress_fill" />
</item>
</layer-list>
progress_fill.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="180"
android:centerColor="#FFB80000"
android:endColor="#FFFF4400"
android:startColor="#FF470000" />
<corners android:radius="5px" />
<stroke
android:width="2dp"
android:color="#50999999" />
<stroke
android:width="1dp"
android:color="#70555555" />
</shape>
progress\u background\u fill.xml
像这样应用这些xml:
<SeekBar
android:id="@+id/seek_hist_timeline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/seekbar_progress" />
将另一层添加到您的层列表中,可使用id
android:id/secondaryProgress绘制
请参考此答案:这是您的答案。
只需在xml中的seekbar标记中添加两行
<SeekBar
android:progressTint="@color/black"
android:thumbTint="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
相应地更改颜色。确保将android:id/secondaryProgress
放在层列表中的背景和进度id之间,我喜欢这个。谢谢
<SeekBar
android:progressTint="@color/black"
android:thumbTint="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content" />