我想构建一个自定义的 SeekBar,它有一个辅助进度条,但默认情况下是从头到尾显示缓冲数据的进度。
将其视为大多数在线视频播放器提供的搜索栏,例如YouTube。所以总而言之,我们有默认的搜索栏、它的默认进度条和一个辅助进度条,它会填充一种颜色,而不管主要进度/用户对搜索栏槽口的拖动如何,只依赖于缓冲数据。
到目前为止,我只有普通的搜索栏,它会根据用户的拖动/设置进度改变颜色。
有人可以帮忙吗?
到目前为止我的代码:
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_background_fill.xml
<gradient
android:angle="90"
android:centerColor="#FF555555"
android:endColor="#FF555555"
android:startColor="#FF555555" />
<corners android:radius="5px" />
<stroke
android:width="2dp"
android:color="#50999999" />
<stroke
android:width="1dp"
android:color="#70555555" />
像这样应用这些 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
向您的图层列表可绘制对象添加另一个图层
关于android - 自定义 SeekBar,在缓冲时同时更改进度颜色和背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473442/