第34章、拖动条SeekBar(从零开始学Android)

  听歌、看电影,快进或者退回某一时间或者调节音量大小,我们都会用到SeekBar拖动条,本章一起来了解一下用法。

一、设计界面

  1、打开“res/layout/activity_main.xml”文件。

  从工具栏向activity拖出1个按钮SeekBar、2个TextView。

  

  2、打开activity_main.xml文件。

  代码如下:

<?xml version="1.0" encoding="utf-8"?>
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     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"
     android:secondaryProgress="75" />
     
     <TextView 
     android:id="@+id/info01" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" />
     
     <TextView  
     android:id="@+id/info02"
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" />
     
 </LinearLayout>

 
二、程序文件 

  打开“src/com.genwoxue.seekbar/MainActivity.java”文件。

  然后输入以下代码:  

package com.genwoxue.seekbar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.SeekBar.OnSeekBarChangeListener;

//注意同时从MainActivity类自Activity继承与实现OnSeekBarChangeListener接口
public class MainActivity extends Activity implements OnSeekBarChangeListener
{
	//声明变量
    private SeekBar sbVolumer=null;
    private TextView tvinfo01=null;
    private TextView tvInfo02=null;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获得控件
        sbVolumer = (SeekBar) findViewById(R.id.seekbar);
        sbVolumer.setOnSeekBarChangeListener(this);
        tvinfo01 = (TextView) findViewById(R.id.info01);
        tvInfo02 = (TextView) findViewById(R.id.info02);
    }
    
    //SeekBar数值改变事件
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch)
    {
    	tvinfo01.setText("音量当前值:"+progress);
    }
    
    //SeekBar开始拖动事件
    @Override
    public void onStartTrackingTouch(SeekBar arg0)
    {
    	tvInfo02.setText("音量正在调解");
    }
    
    //SeekBar停止拖动事件
    @Override
    public void onStopTrackingTouch(SeekBar arg0)
    {
    	tvInfo02.setText("音量停止调解");
    }
}


 

说明:了解seekbar的常见方法与属性。

 

  (1)拖动条SeekBar的事件

                  由于拖动条可以被用户控制。所以需要对其进行事件监听,这就需要实现SeekBar.OnSeekBarChangeListener接口。此接口共需要监听三个事件,分别是:
                 数值改变(onProgressChanged)
                 开始拖动(onStartTrackingTouch)
                 停止拖动(onStopTrackingTouch)

  (2)拖动条的主要属性和方法

             setMax
             设置拖动条的数值

             setProgress
             设置拖动条当前的数值

             setSeconddaryProgress
             设置第二拖动条的数值,即当前拖动条推荐的数值

 

三、运行效果

   

    

你可能感兴趣的:(android,android,android)