📜  Android中的垂直SeekBar(1)

📅  最后修改于: 2023-12-03 15:29:22.720000             🧑  作者: Mango

Android中的垂直SeekBar

Android中的SeekBar是一个常用的组件,它能够使用户通过滑动滑块来选择一个数值或一个区间,它有水平和垂直两种方向。

本文主要介绍垂直SeekBar的相关内容,包括使用方法、属性介绍以及常用的监听器。

使用方法

垂直SeekBar的使用方法与水平SeekBar基本相同,只需要将其宽高属性交换即可。

在XML布局文件中添加垂直SeekBar:

<SeekBar
    android:id="@+id/seekBar_vertical"
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:rotation="270"
    android:progress="50"
    android:max="100"
    />

其中,rotation属性用于将SeekBar旋转270度,使其变为垂直方向;progress属性用于设置当前进度值;max属性用于设置最大进度值。

在Java代码中获取SeekBar实例,并设置监听器:

SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar_vertical);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // 进度改变时回调
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // 开始滑动时回调
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // 停止滑动时回调
    }
});
常用属性

垂直SeekBar和水平SeekBar的属性基本一致,主要包括以下几个:

  • progress:当前进度值。
  • max:最大进度值。
  • secondProgress:第二进度值,用于显示进度范围。
  • thumb:滑块图标,可自定义。
  • thumbOffset:滑块图标的偏移量,用于调整滑块位置。
  • progressDrawable:进度条样式,可自定义。

其中,thumb和progressDrawable属性可通过drawable文件进行自定义,如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:width="20dp"
          android:height="20dp"/>
    <solid android:color="#ffffff"/>
    <corners android:radius="10dp"/>
</shape>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <corners android:radius="5dp" />
            <solid android:color="#CCCCCC" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <corners android:radius="5dp" />
                <solid android:color="#57C581" />
            </shape>
        </clip>
    </item>
</layer-list>
常用监听器

垂直SeekBar的常用监听器同水平SeekBar:

  • setOnSeekBarChangeListener:进度改变监听器。
  • setOnTouchListener:触摸事件监听器,可用于拦截事件。
  • setOnClickListener:单击事件监听器。
  • setOnLongClickListener:长按事件监听器。
结语

本文介绍了Android中垂直SeekBar的使用方法、常用属性以及常用监听器,希望对有需要的程序员有所帮助。