1. ProgressBar使用

首先我们看例程如下:

(1) main.xml文件如下:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="默认进度条:"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="progress1"

//没有设置style,默认样式,中度旋转的圆形进度条
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小圆形进度条:"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="progress3"
style="?android:attr/progressBarStyleSmall"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="大圆形进度条:"
android:layout_gravity="center_vertical"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="progress3"
style="?android:attr/progressBarStyleLarge"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="条形进度条:"
android:id="@+id/tv"
/>
<ProgressBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="progress2"
android:id="@+id/porb"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
android:progress="50"
android:secondaryProgress="70"
/>
</LinearLayout>

(2)接下来是MainActivity.java文件:

 package com.progressbar;

 import android.app.Activity;
import android.os.Bundle;
import android.widget.ProgressBar;
//使用Runnable接口
public class MainActivity extends Activity implements Runnable {
private Thread th ; //声明一条线程
private ProgressBar pb ; //声明一个进度条对象
private boolean stateChage; //标识进度值最大最小的状态
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//实例进度条对象
pb = (ProgressBar)findViewById(R.id.porb);
th = new Thread(this);//实例线程对象,当前MainActivity实现了Runnable接口,这样MainActivity本身可以作为参数实例化Thread()对象
th.start();//启动线程
} @Override
public void run() {//实现Runnable接口抽象函数
while(true){
int current = pb.getProgress();//得到当前进度值
int currentMax = pb.getMax();//得到进度条的最大进度值
int secCurrent = pb.getSecondaryProgress();//得到底层当前进度值
//以下代码实现进度值越来越大,越来越小的一个动态效果
if(stateChage==false){
if(current>=currentMax){
stateChage=true;
}else{
//设置进度值
pb.setProgress(current+1);
//设置底层进度值
pb.setSecondaryProgress(current+1);
}
}else{
if(current<=0){
stateChage=false;
}else{
pb.setProgress(current-1);
pb.setSecondaryProgress(current-1);
}
}
// 设置长方形进度条进度变大和变小的速率快慢
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

3. 总结:

(1)Android的ProgressBar样式:

style="?android:attr/progressBarStyleHorizontal"  长形进度条

style="?android:attr/progressBarStyleLarge"   超大号圆形ProgressBar
style="?android:attr/progressBarStyleLargeInverse"  超大号圆形ProgressBar,Inverse反向转向的
style="?android:attr/progressBarStyleSmall" 小号圆形ProgressBar

style="?android:attr/progressBarStyleSmallTitle" 标题型圆形ProgressBar

等等还有很多

(2)setProgress和setSecondaryProgress区别:
这么说你肯定明白:网络视频加载的时候有个播放进度和缓冲进度,播放进度一般可以用setProgerss来显示,而setSecondaryProgress就是用来显示缓冲进度的
同样的360的雷神引擎也是一样,setProgress是文件写入本地进度,setSecondaryProgress就是文件加载进度。还不明就自己写一个Demo测试一遍。写一个把复制文件的程序,setProgress表示往流里面读数据,setSecondaryProgerss表示从流里面输出数据
												

Android(java)学习笔记72:ProgressBar的使用的更多相关文章

  1. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  2. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  3. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  4. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  5. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  6. Android 数字签名学习笔记

    Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...

  7. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  8. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  9. 20145316许心远《Java学习笔记(第8版)》课程总结

    20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...

  10. Android:日常学习笔记(6)——探究活动(4)

    Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...

随机推荐

  1. 5.SpringMVC

    1.SpringMVC概述 概述: SpringMVC是基于请求驱动,围绕一个核心Servlet 转发请求到对应的Controller而设计的优点:是一个典型的教科书式的MVC构架,易学易用提供了清晰 ...

  2. Java 目录和文件的复制

    1.复制一个目录及其子目录.文件到另外一个目录 //复制一个目录及其子目录.文件到另外一个目录 public void copyFolder(File src, File dest) throws I ...

  3. opencv-将分离合并图像(Red通道>125置255<=置0)

    #include <iostream> #include <opencv2/opencv.hpp> #include "opencv2/imgproc/imgproc ...

  4. 基于webpack的vue项目路径别名

    在vue的项目里,我们可以使用../这样的相对路径的方式引用不同目录的组件: import userinfo from '../../../components/userinfo.vue'; 使用.. ...

  5. 单例模式+volatile禁止指令重排序

    单例模式: 单例,顾名思义就是只能有一个.不能再出现第二个.就如同地球上没有两片一模一样的树叶一样. 在这里就是说:一个类只能有一个实例,并且整个项目系统都能访问该实例. 单例模式共分为两大类: 懒汉 ...

  6. Nvelocity中格式化金钱和日期

    //格式化金钱(  9,999.00)function formatCurrency(num) {    num = num.toString().replace(/\$|\,/g, '');    ...

  7. 3d Max 2010安装失败怎样卸载3dsmax?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  8. 性能测试工具LoadRunner24-LR之Analysis 系统资源分析

    1.内存分析方法 内存分析方法主要是用于判断系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现.主要计数器包括Memory和Physical Disk类别的计数器 内存分析的主要步骤和方 ...

  9. Java基本语法_循环练习系列(二)——万年历

    写万年历大致可以分为以下几个步骤: 1.根据用户输入的年份判断该年是否是闰年. 2.根据用户输入的月份计算该月的天数. 3.计算输入的年份之前的总天数. 4.计算输入的月份之前的天数. 5.计算该月的 ...

  10. Kudu-Impala集成特性

    不多说,直接上干货! Kudu-Impala 集成特性 CREATE / ALTER / DROP TABLE Impala 支持使用 Kudu 作为持久层来 creating(创建),alterin ...