Android_SeekBarAndProgressBar

时间:2023-03-08 16:54:04

xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.progressbar.MainActivity" >
<!-- progressBar 进度条
分为圆形进度条和水平进度条
圆形进度条又分为小,中,大型进度条
属性:
style 指定进度条的类型,有如下值:
@android:style/Widget.ProgressBar.Small 小圆型进度条
@android:style/Widget.ProgressBar 中圆型进度条
@android:style/Widget.ProgressBar.Large 大圆型进度条
@android:style/Widget.ProgressBar.Horizontal 水平进度条
-->
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Small" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Large" />
<!-- 水平进度条的属性
android:max 最大值
android:progress 当前值 -->
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:max="100"
android:progress="10"
style="@android:style/Widget.ProgressBar.Horizontal" /> <SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"/> </LinearLayout>

源代码:

package com.example.progressbar;

import java.util.Timer;
import java.util.TimerTask; import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ProgressBar;
import android.widget.SeekBar; public class MainActivity extends Activity {
ProgressBar progressBar;
SeekBar seekBar;
private int progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setProgress(progress);
//创建定时器
Timer timer = new Timer();
//设置定时器的任务
//参数一:时间到的时候执行的任务
//参数2:第一次延迟多久后执行任务(单位:ms)
//参数3:每隔多久执行一次任务(单位:ms)
TimerTask task = new MyTimerTask();
timer.schedule(task,3000,1000);
//获取拖动条
seekBar = (SeekBar) findViewById(R.id.seekBar);
//给拖动条添加拖动事件
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//停止拖动时调用
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
Log.i("MainActivity", "停止拖动");
}
//开始拖动时调用
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub }
//正在拖动时调用
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub }
});
} public class MyTimerTask extends TimerTask{ @Override
public void run() {
// TODO Auto-generated method stub
progress += 5;
if(progress >= progressBar.getMax()){
progress = progressBar.getMax();
}
progressBar.setProgress(progress);
} } }