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应用就完成了,其实其他很多控件使用方法都一样,首先定义控件,然后取得控件对象,添加监听器,最后在监听器的相应方法里实现功能!!
最后祝大家学习愉快!!!
上面是官方的定义。
什么是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应用就完成了,其实其他很多控件使用方法都一样,首先定义控件,然后取得控件对象,添加监听器,最后在监听器的相应方法里实现功能!!
最后祝大家学习愉快!!!
相关文章推荐
- Android 控件学习--自定义SeekBar
- Android 控件学习--自定义SeekBar
- android学习日记03--常用控件progressbar/seekbar
- marsAndroid学习——SeekBar和RatingBar控件
- marsAndroid学习——SeekBar和RatingBar控件
- Android学习之SeekBar控件
- Android 高级控件学习--SeekBar
- Android学习之SeekBar控件
- Android学习之SeekBar控件
- Android学习之 扩大控件点击触摸区域及TouchDelegate的介绍
- 【Android】学习笔记(1)——基本控件一
- android---textview控件学习笔记之显示表情图片和文本(二)
- 从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-2. 输入控件)
- 【Android开发学习28】界面控件之列表控件(ListView)--显示字符数组
- Android学习:SeekBar实现音量调节
- [Android新手学习笔记16]-UI控件之AlertDialog
- Android控件TextView学习一
- Android学习精要-CheckedTextView控件
- Android_实现星星控件_学习