android中的进度条processBar

来源:互联网 发布:淘宝卖家生存现状 编辑:程序博客网 时间:2024/05/22 16:06

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

}

 

原创粉丝点击