一、使用SeekBar步骤:
SeekBar一般用于进度可调的地方,比如在做音乐播放器的时候,调节音量以及调节歌曲播放进度的时候就是用的SeekBar。
1.在布局文件中声明SeekBar:
2.定义一个OnSeekBarChangeListener:
class SeekBarListener implements OnSeekBarChangeListener{ //当进度条发生变化时,就会调用该方法 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { System.out.println(progress); } //当用户开始滑动滑块时调用该方法 public void onStartTrackingTouch(SeekBar seekBar) { System.out.println("seekbar start:"+seekBar.getProgress()); } //当用户结束对滑块的滑动时调用该方法 public void onStopTrackingTouch(SeekBar seekBar) { System.out.println("seekbar end:"+seekBar.getProgress()); } }
运行结果:
输出结果:
当然这样的进度条如果作为播放器的控件就太难看了,可以定义自己的SeekBar样式,可以尽情的去想象扩展。
其中seekbar_style.xml是进度条的样式,thumb.xml是进度条滑块的样式。
main.xml
seekbar_style.xml
thumb.xml
SeekBarActivity.java
package com.android.activity; import android.app.Activity; import android.os.Bundle; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; public class SeekBarActivity extends Activity { //声明SeekBar 和 TextView对象 SeekBar mSeekBar; TextView mProgressText; TextView mTrackingText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //取得SeekBar对象 mSeekBar = (SeekBar) findViewById(R.id.seek); mProgressText = (TextView) findViewById(R.id.progress); mTrackingText = (TextView) findViewById(R.id.tracking); mSeekBar.setOnSeekBarChangeListener(new SeekBarListener()); } class SeekBarListener implements OnSeekBarChangeListener{ /** * 在拖动中--即值在改变 */ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { //progress为当前数值的大小 mProgressText.setText("当前值:" + progress); } /** * 在拖动中会调用此方法 */ public void onStartTrackingTouch(SeekBar seekBar) { mTrackingText.setText("SeekBar正在调节"); } /** * 停止拖动 */ public void onStopTrackingTouch(SeekBar seekBar) { mTrackingText.setText("SeekBar停止调节"); } } }
运行结果:
二、RatingBar
1.在布局文件当中声明RatingBar:
android:nubStars="5":指明共多少颗星星
android:stepSize="1.0":指明每次前进多少颗星星
2.定义一个OnRatingBarChangeListener
class RatingBarListener implements OnRatingBarChangeListener{ public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { System.out.println(rating); } }
运行结果: