SeekBar与ProgressBar

Posted Tears_fg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SeekBar与ProgressBar相关的知识,希望对你有一定的参考价值。

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);
        }
        
    }
    
}

 

以上是关于SeekBar与ProgressBar的主要内容,如果未能解决你的问题,请参考以下文章

Android ProgressBar SeekBar

android关于自定义seekbar控件的问题(将横向seekbar改成竖向seekbar)

Android 进度条(ProgressBar)和拖动条(Seekbar)补充“自定义组件”(总结)

SeekBar(拖动条)

美化我们的seekbar

关于ProgressBar的美化问题