水平进度条:RangeSeekBar具体使用

水平进度条:自定义SeekBar背景
水平进度条:解决系统SeekBar宽度不准确、滑动颜色显示不准的问题
水平进度条:RangeSeekBar具体使用

  • 先看效果:

  • 添加依赖:

 maven {
    
     url 'https://jitpack.io' }
 
 implementation 'com.github.Jay-Goo:RangeSeekBar:v3.0.0'
  • 布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginRight="10px"
        android:layout_toLeftOf="@id/rsb"
        android:text="00:00"
        android:textColor="@color/white"
        android:textSize="48px" />

    <com.jaygoo.widget.RangeSeekBar
        android:id="@+id/rsb"
        android:layout_width="810px"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        app:rsb_gravity="center"
        app:rsb_mode="single"
        app:rsb_progress_drawable="@drawable/shape_seekbar_progress"
        app:rsb_progress_drawable_default="@drawable/shape_seekbar_progress_default"
        app:rsb_progress_height="8px"
        app:rsb_thumb_drawable="@drawable/seekbar_thumb"
        app:rsb_thumb_height="44px"
        app:rsb_thumb_width="44px" />

    <TextView
        android:id="@+id/tv_listen_duration"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10px"
        android:layout_toRightOf="@id/rsb"
        android:text="05:00"
        android:textColor="@color/white"
        android:textSize="48px" />

</RelativeLayout>
  • 滑道背景色shape文件:shape_seekbar_progress_default.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#1A1A1A"/>
</shape>

  • 进度条颜色文件:shape_seekbar_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#8831C27C" />
</shape>
  • 滑动按钮背景文件:seekbar_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    <solid android:color="#ffffff" />
    <size
        android:width="44px"
        android:height="44px" />
</shape>
  • 根据不同的音乐、视频文件,代码动态设置不同的最大值,以及设置监听:
public class MainActivity extends AppCompatActivity {
    
    
    RangeSeekBar rangeSeekBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rangeSeekBar = findViewById(R.id.rsb);
        rangeSeekBar.setRange(0f, 200f); //代码动态设置最大值
        rangeSeekBar.setProgress(50f); //设置当前进度
        rangeSeekBar.setOnRangeChangedListener(new OnRangeChangedListener() {
    
    
            @Override
            public void onRangeChanged(RangeSeekBar view, float leftValue, float rightValue, boolean isFromUser) {
    
    

            }

            @Override
            public void onStartTrackingTouch(RangeSeekBar view, boolean isLeft) {
    
    

            }

            @Override
            public void onStopTrackingTouch(RangeSeekBar view, boolean isLeft) {
    
    

            }
        });
    }
}

Guess you like

Origin blog.csdn.net/zhangjin1120/article/details/121385489