Android SeekBar

分享到:

SeekBar是一个可拖动的滑块组件,滑块在不同的位置对应不同的值,因些经常用于一些参数调节的场合,例如屏幕亮度调节、音量大小调节。

类结构:

java.lang.Object

	android.view.View

		android.widget.ProgressBar

			android.widget.AbsSeekBar

				android.widget.SeekBar

通过上面的类结构可以看出SeekBar是ProgressBar的扩展,在其基础上增加了一个可拖动的thumb(注:就是那个可拖动的图标)。用户可以触摸thumb并向左或向右拖动如下图:

XML布局常用属性:

android:thumb 可以拖动的滑块图标
android:max 拖动滑块对应的最大值,例如 android:max=100
android:progress

SeekBar初始数值

例如设置android:max=100,android:progress=50的情况下,SeekBar滑块初始位置会在整个进度条中央

公共方法:

public void setOnSeekBarChangeListener (SeekBar.OnSeekBarChangeListener l)

设置一个监听器以接受seekbar进度改变时的通知。同时提供用户在SeekBar上开始和停止触摸手势时的通知。

参数l SeekBar的通知监听对象
参见 SeekBar.OnSeekBarChangeListener

getProgress() 获取滑块当前位置对应的数值

监听接口:

SeekBar.OnSeekBarChangeListener 当进度滑块位置发生变化时通知客户端

SeekBar实例(源码来自网络):

XML布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
>
    <SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:max="100"
    ></SeekBar>
</LinearLayout>

JAVA代码如下:

public class SeekBarDemo extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.seekbardemo);

        final SeekBar seekBar1 = (SeekBar) this.findViewById(R.id.seekBar1);
        seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                Toast.makeText(SeekBarDemo.this,
                        String.valueOf(seekBar1.getProgress()),
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
}

本例设置SeekBar的最大数值为100,通过拖动滑块可以实时看到滑块当前位置对应的值,通过这个例子延伸一下可以做出音量调节和亮度调节,都不是很难大家可以试试看。

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例