安卓控件使用系列13:SeekBar滑动控件的使用

安卓中SeekBar控件是用于拖动的一种控件,下面来介绍一下它的使用方法。

这个例子实现的是滑动SeekBar控件,在TextView控件上显示开始或停止拖动和所拖动到的位置。

整体思路:在布局文件中定义两个TextView控件和两个SeekBar控件,第一个SeekBar控件设置max、progress属性,第二个SeekBar控件设置max、progress、secondaryProgress(第二进度)属性;在活动中实现OnSeekBarChangeListener,对每个SeekBar控件设置setOnSeekBarChangeListener这个方法,onProgressChanged是滑动滑杆的时候触发的事件,根据不同的SeekBar控件来显示滑动的位置;onStartTrackingTouch是从哪里开始滑动的方法,根据不同的SeekBar控件来显示该控件开始滑动;onStopTrackingTouch是从哪里结束滑动的方法,根据不同的SeekBar控件来显示该控件结束滑动。通过这样的一个实际的例子可以让开发人员很好的理解SeekBar控件各个事件的作用和使用方法。

activity_main.xml文件:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         />
    <TextView 
        android:id="@+id/textview2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <SeekBar 
        android:id="@+id/seekbar1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="30"
        />
    
    <SeekBar 
        android:id="@+id/seekbar2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="30"
        android:secondaryProgress="60"
        />
</LinearLayout>
MainActivity.java文件:

public class MainActivity extends Activity implements OnSeekBarChangeListener {
    private TextView textview1,textview2;
    private SeekBar seekbar1,seekbar2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textview1=(TextView)findViewById(R.id.textview1);
		textview2=(TextView)findViewById(R.id.textview2);
		seekbar1=(SeekBar)findViewById(R.id.seekbar1);
		seekbar2=(SeekBar)findViewById(R.id.seekbar2);
		seekbar1.setOnSeekBarChangeListener(this);
		seekbar2.setOnSeekBarChangeListener(this);
	}


//	当滑动滑杆的时候会触发的事件
	@Override
	public void onProgressChanged(SeekBar seekBar, int progress, boolean arg2) {
		// TODO Auto-generated method stub
		if(seekBar.getId()==R.id.seekbar1){
			textview2.setText("seekbar1的当前位置是:"+progress);
		}else{
			textview2.setText("seekbar2的当前位置是:"+progress);
		}
	}

//	从哪里开始拖动
	@Override
	public void onStartTrackingTouch(SeekBar seekBar) {
		// TODO Auto-generated method stub
		if(seekBar.getId()==R.id.seekbar1){
			textview1.setText("seekbar1开始拖动!");
		}else{
			textview1.setText("seekbar2开始拖动!");
		}
	}

//	从哪里结束拖动
	@Override
	public void onStopTrackingTouch(SeekBar seekBar) {
		// TODO Auto-generated method stub
		if(seekBar.getId()==R.id.seekbar1){
			textview1.setText("seekbar1停止拖动!");
		}else{
			textview1.setText("seekbar2停止拖动!");
		}
	}

}


你可能感兴趣的:(android,安卓,seekbar,滑动控件,拖动控件)