Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义SeekBar,在缓冲时同时更改进度颜色和背景颜色_Android_Colors_Seekbar_Android Styles - Fatal编程技术网

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" />