android - 自定义 SeekBar,在缓冲时同时更改进度颜色和背景颜色

标签 android colors seekbar android-styles


我想构建一个自定义的 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 向您的图层列表可绘制对象添加另一个图层

引用这个答案:https://stackoverflow.com/a/2021119/2951003

关于android - 自定义 SeekBar,在缓冲时同时更改进度颜色和背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473442/

相关文章:

javascript - 创建 jsFiddle/jsbin.com 样式代码编辑器的工具?

android - 如何取消线程

java - 在 Java 和 C 之间发送 int[]s

android - 更新以支持库 23.2.1 后,RecyclerView 项目底部有非常大的空白空间

java - R.string 不显示我在 res/values/strings.xml 中手动定义的字符串

java - Android - "setToolbarColor(int)"和 "setSecondaryToolbarColor(int)"已弃用

java - 如何在javaFX中使用阴影填充颜色?

php - RGB 到最接近的预定义颜色

android - 自定义内联 SeekBarPreference - 如何在第一次运行时设置 SeekBar 进度?

android seekbar 在方向改变时的绘图问题