SeekBar 控件
(一)、概述
拖动条控件,类名:SeekBar,与进度条在外观上相似,并且允许用户通过拖动滑块来改变滑块的值。手机中调整屏幕亮度、音量的用的就是 SeekBar
(二)、常用属性:
SeekBar 是 ProgressBar 的间接子类,因此 SeekBar 的属性参考 ProgressBar 的属性列表。
(三)、OnSeekBarChangeListener 接口
1、概述
该接口负责监听 SeekBar 控件的滑块移动。
2、常用方法:
该接口中定义了一下三个方法:
1)void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser);
作用:滑块进度值发生改变时,触发本方法执行。
seekBar参数:当前的 SeekBar 对象
progress参数:滑块的进度值
fromUser参数:用户是否拖动了滑块,true:是,false:否
2)void onStartTrackingTouch(SeekBar seekBar);
作用:开始移动滑块时,触发本方法执行,滑块移动中本方法不再被触发。
3)void onStopTrackingTouch(SeekBar seekBar);
作用:结束移动滑块时,触发本方法。
实例:
MainActivity.java中的代码
package com.jxust.day03_08;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class MainActivity extends ActionBarActivity implements OnSeekBarChangeListener {
int mProgress; //代表 SeekBar 当前的 progress 值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
// 将MainActivity的地址保存到OnSeekBarChangeListener中
seekBar.setOnSeekBarChangeListener(this);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
mProgress = progress;
Log.i("main", "progress="+progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.i("main", "开始拖动seekBar");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.i("main", "结束拖动seekBar");
}
}
activity_main.xml中的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" /> </RelativeLayout>