您的位置:首页 > 移动开发 > Android开发

Android学习之SeekBar控件

2011-06-25 17:06 459 查看
SeekBar:A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys. Placing focusable widgets to the left or right of a SeekBar is discouraged.

上面是官方的定义。

什么是SeekBar控件,SeekBar控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件!就是下面这个样子:



下面来看如何使用SeekBar,用一个例子来说,功能非常简单,Activity上就是一个SeekBar和一个TextView,当我们拖动SeekBar的进度时,在下面的TextView中显示相应的进度变化!



第一步:定义Activity

在main.xml文件中加上一个SeekBar和一个TextView

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<SeekBar

android:id="@+id/seekbar"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

</SeekBar>

<EditText

android:id="@+id/edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

</EditText>

</LinearLayout>

第二步:编写Activity

package com.gufengxiachen.counter;

import android.app.Activity;

import android.os.Bundle;

import android.widget.SeekBar;

import android.widget.SeekBar.OnSeekBarChangeListener;

import android.widget.TextView;

public class CounterActivity extends Activity {

/** Called when the activity is first created. */

//定义一个SeekBar和一个TextView

private SeekBar seekBar;

private TextView textView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//根据ID值取得SeekBar对象

seekBar = (SeekBar)findViewById(R.id.seekbar);

seekBar.setMax(100);

//为SeekBar设置监听器(这里使用匿名内部类)

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

//复写OnSeeBarChangeListener的三个方法

//第一个时OnStartTrackingTouch,在进度开始改变时执行

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

//第二个方法onProgressChanged是当进度发生改变时执行

@Override

public void onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

// TODO Auto-generated method stub

textView = (TextView)findViewById(R.id.edit);

int i= seekBar.getProgress();

textView.setText(""+i);

}

//第三个是onStopTrackingTouch,在停止拖动时执行

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

textView = (TextView)findViewById(R.id.edit);

int i= seekBar.getProgress();

textView.setText(""+i);

}

});

}

}

进过上面简单的步骤一个简单的SeekBar应用就完成了,其实其他很多控件使用方法都一样,首先定义控件,然后取得控件对象,添加监听器,最后在监听器的相应方法里实现功能!!

最后祝大家学习愉快!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: