安卓SeekBar也是一个使用比较频繁的控件,一般音乐播放器,控制音乐进度、调整声音大小等都需要它来实现,下面来介绍下SeekBar的使用。
SeekBar有一个OnSeekBarChangeListener接口,实现它的三个方法分别是:数值的改变(onProgressChanged)、开始拖动(onStartTrackingTouch)、停止拖动(onStopTrackingTouch)。在onProgressChanged 中我们可以得到当前数值的大小
先送上运行界面:
一、xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"2.实现代码:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@android:color/black"
>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/showSeekText"
android:textColor="@android:color/holo_green_light"
/>
</ScrollView>
<!-- android:thumb="@drawable/seek_thumb_style" 拖动条图 -->
<SeekBar
android:layout_width="fill_parent"
android:layout_height="11dip"
android:layout_marginTop="360dip"
android:id="@+id/seekBar"
android:progressDrawable="@drawable/seek_drawable"
android:thumb="@drawable/seek_thumb_style"
/>
</RelativeLayout>
package com.example.seekbar;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
private SeekBar seekBar;
private TextView showSeekText;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = (SeekBar)findViewById(R.id.seekBar);
showSeekText = (TextView)findViewById(R.id.showSeekText);
seekBar.setMax(1000);
seekBar.setProgress(100);
//设置进度条改变事件
seekBar.setOnSeekBarChangeListener(new SeekBarListeners());
//seekBar.setProgress(100);
}
//seekBar事件
final class SeekBarListeners implements OnSeekBarChangeListener{
//正在拖动时触发
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
showSeekText.append("正在拖动:"+seekBar.getProgress()+":"+fromUser+":"+progress+"\r\n");
}
//开始拖动时触发
public void onStartTrackingTouch(SeekBar seekBar) {
showSeekText.append("开始拖动:"+seekBar.getProgress()+"\r\n");
}
//拖动停止时触发
public void onStopTrackingTouch(SeekBar seekBar) {
showSeekText.append("停止拖动:"+seekBar.getProgress()+"\r\n");
}
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}