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