您的位置:首页 > 移动开发 > Android开发

android中的进度条processBar

2012-04-17 09:18 169 查看
package com.tarena.progressbar.demo;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ProgressBar;

import android.widget.SeekBar;

import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {

/** Called when the activity is first created. */

ProgressBar mProgressBar;

SeekBar mSeekBar;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// 找到水平进度条对象

mProgressBar = (ProgressBar) findViewById(R.id.progressBarHorizontal);

// 设置最大值

// 文件使用进度建议设置为文件大小

// 播放音乐使用建议设置为音乐时间

// 不设置,默认为100--很少不设置

mProgressBar.setMax(1000);

// ProgressBar支持两个进度

// 第一进度深色,第二进度浅色

// ProgressBar 取值范围是从0-MAX

// 可以设为负值,能超过最大值,但是无效

// 负值==0,超过最大值==MAX

mProgressBar.setProgress(567);

mProgressBar.setSecondaryProgress(678);

// 找到增加和减少进度的Button

Button btnUpProg = (Button) findViewById(R.id.UpProg);

Button btnDownProg = (Button) findViewById(R.id.DownProg);

// 设置增加和减少进度的事件处理

btnUpProg.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 增加进度

// 绝对值的修改

// 相对原来值的修改,才有增加和减少的概念

// 得到当前的进度

int nowProgress = mProgressBar.getProgress();

int nowSecondaryProgress = mProgressBar.getSecondaryProgress();

// 取得进度条的最大值

int nowMaxProgress = mProgressBar.getMax();

// 一次增加的百分比

int oneUpSize = (nowMaxProgress / 100) * 5;

// 在当前进度的基础上增加或者修改

// nowProgress += oneUpSize;

mProgressBar.setProgress(nowProgress + oneUpSize);

mProgressBar.setSecondaryProgress(nowSecondaryProgress

+ oneUpSize);

}

});

btnDownProg.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 减少进度

// 增加进度

// 绝对值的修改

// 相对原来值的修改,才有增加和减少的概念

// 得到当前的进度

int nowProgress = mProgressBar.getProgress();

int nowSecondaryProgress = mProgressBar.getSecondaryProgress();

// 取得进度条的最大值

int nowMaxProgress = mProgressBar.getMax();

// 一次增加的百分比

int oneUpSize = (nowMaxProgress / 100) * 5;

// 在当前进度的基础上增加或者修改

// nowProgress += oneUpSize;

mProgressBar.setProgress(nowProgress - oneUpSize);

mProgressBar.setSecondaryProgress(nowSecondaryProgress

- oneUpSize);

}

});

//找到SeekBar,设置拖动监听事件

mSeekBar = (SeekBar) findViewById(R.id.DemoSeekBar);

mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

//当拖动进度结束的时候调用这个方法

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onStopTrackingTouch:"+seekBar.getProgress());

}

//当拖动进度开始的时候调用这个方法

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onStartTrackingTouch:"+seekBar.getProgress());

}

//当拖动进度进行中的时候调用这个方法

//会被一直频繁调用

@Override

public void onProgressChanged(

SeekBar seekBar

//当前拖动的瞬间,进度是多少

, int progress

//区分是用户拖动产生的进度改变,还是代码产生的进度改变

,boolean fromUser

) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onProgressChanged:"+seekBar.getProgress());

}

});

}

}

package com.tarena.progressbar.demo;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ProgressBar;

import android.widget.RatingBar;

import android.widget.SeekBar;

import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {

/** Called when the activity is first created. */

ProgressBar mProgressBar;

SeekBar mSeekBar;

RatingBar mDemoRatingBar;

RatingBar mDemoRatingBarSmall;

RatingBar mDemoRatingBarIndicator;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// 找到水平进度条对象

mProgressBar = (ProgressBar) findViewById(R.id.progressBarHorizontal);

// 设置最大值

// 文件使用进度建议设置为文件大小

// 播放音乐使用建议设置为音乐时间

// 不设置,默认为100--很少不设置

mProgressBar.setMax(1000);

// ProgressBar支持两个进度

// 第一进度深色,第二进度浅色

// ProgressBar 取值范围是从0-MAX

// 可以设为负值,能超过最大值,但是无效

// 负值==0,超过最大值==MAX

mProgressBar.setProgress(567);

mProgressBar.setSecondaryProgress(678);

// 找到增加和减少进度的Button

Button btnUpProg = (Button) findViewById(R.id.UpProg);

Button btnDownProg = (Button) findViewById(R.id.DownProg);

// 设置增加和减少进度的事件处理

btnUpProg.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 增加进度

// 绝对值的修改

// 相对原来值的修改,才有增加和减少的概念

// 得到当前的进度

int nowProgress = mProgressBar.getProgress();

int nowSecondaryProgress = mProgressBar.getSecondaryProgress();

// 取得进度条的最大值

int nowMaxProgress = mProgressBar.getMax();

// 一次增加的百分比

int oneUpSize = (nowMaxProgress / 100) * 5;

// 在当前进度的基础上增加或者修改

// nowProgress += oneUpSize;

mProgressBar.setProgress(nowProgress + oneUpSize);

mProgressBar.setSecondaryProgress(nowSecondaryProgress

+ oneUpSize);

}

});

btnDownProg.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 减少进度

// 增加进度

// 绝对值的修改

// 相对原来值的修改,才有增加和减少的概念

// 得到当前的进度

int nowProgress = mProgressBar.getProgress();

int nowSecondaryProgress = mProgressBar.getSecondaryProgress();

// 取得进度条的最大值

int nowMaxProgress = mProgressBar.getMax();

// 一次增加的百分比

int oneUpSize = (nowMaxProgress / 100) * 5;

// 在当前进度的基础上增加或者修改

// nowProgress += oneUpSize;

mProgressBar.setProgress(nowProgress - oneUpSize);

mProgressBar.setSecondaryProgress(nowSecondaryProgress

- oneUpSize);

}

});

//找到SeekBar,设置拖动监听事件

mSeekBar = (SeekBar) findViewById(R.id.DemoSeekBar);

mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

//当拖动进度结束的时候调用这个方法

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onStopTrackingTouch:"+seekBar.getProgress());

}

//当拖动进度开始的时候调用这个方法

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onStartTrackingTouch:"+seekBar.getProgress());

}

//当拖动进度进行中的时候调用这个方法

//会被一直频繁调用

@Override

public void onProgressChanged(

SeekBar seekBar

//当前拖动的瞬间,进度是多少

, int progress

//区分是用户拖动产生的进度改变,还是代码产生的进度改变

,boolean fromUser

) {

// 输出日志

Log.i("SeekBarChangeListener"

, "onProgressChanged:"+seekBar.getProgress());

}

});

mDemoRatingBar = (RatingBar) findViewById(R.id.DemoRatingBar);

mDemoRatingBarSmall = (RatingBar) findViewById(R.id.DemoRatingBarSmall);

mDemoRatingBarIndicator = (RatingBar) findViewById(R.id.DemoRatingBarIndicator);

//设置显示几颗星

mDemoRatingBar.setNumStars(3);

//设置最大值--和几颗星没有直接关系

//这里用3颗星表示10个级别

mDemoRatingBar.setMax(10);

mDemoRatingBar.setProgress(7);

//RatingBar没有第二进度,设置了,不报错,但是无效

mDemoRatingBar.setSecondaryProgress(9);

//IsIndicator为false代表不仅仅使显示,还可以编辑

//IsIndicator为true代表仅仅用于显示,不可以编辑

mDemoRatingBar.setIsIndicator(false);

mDemoRatingBarSmall.setNumStars(10);

mDemoRatingBarSmall.setMax(50);

mDemoRatingBarSmall.setProgress(33);

//这样控制是否编辑,还能设计事件

mDemoRatingBarSmall.setIsIndicator(false);

//Enabled设置为false,事件也同时没有了

//mDemoRatingBarSmall.setEnabled(false);

//View.GONE 设置为不可见

//View.VISIBLE 设置为可见

//mDemoRatingBarSmall.setVisibility(View.VISIBLE);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: