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)学习笔记130:ProgressBar使用的的更多相关文章

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

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

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

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

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

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

  4. 20145330第六周《Java学习笔记》

    20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...

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

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

  6. Android 数字签名学习笔记

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

  7. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

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

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

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

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

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

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

随机推荐

  1. ccr test

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 问题:关于贴友一个用js传递value默认值的简单实现

    需求和代码如下: “这是我的代码:” 1: <input type="text" id="price2" value="333"/&g ...

  3. bzoj 1058 [ZJOI2007]报表统计(set)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1058 [题意] 一个序列,提供插入,查询相邻最小差值,查询任意最小差值的操作. [思路 ...

  4. NOIP2003 传染病控制

    题四     传染病控制 [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国 大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完 全认 ...

  5. centos7 rabbitmq系统部署

    CentOS7 1.安装系统 基础设施服务器:Java平台.Linux远程管理.开发工具 2.打开网络连接: (1)cd  /etc/sysconfig/network-scripts/  #进入网络 ...

  6. python打包成exe(py2exe)

    对比了几个打包工具,发现py2exe更好用一点,一个命令就可以. 1.获取 http://prdownloads.sourceforge.net/py2exe 下载python版本对应的.直接下载然后 ...

  7. OpenCV2.4.6与vs2008配置问题

    刚刚学习Opencv,发现配置的时候蛮复杂的,特此记下以备后续. 我的opencv安装在D:\OpenCV\opencv 1.设置环境变量 首先说一下环境配置,看到很多网上说的是根据系统的位数来判断, ...

  8. jq向上无缝滚动

    <!-- -------------摇奖排行榜--------------- --> <div class="Top_Record"> <div cl ...

  9. 【3D研发笔记】之【数学相关】(一):坐标系

    现在开始学习3D基础相关的知识,本系列的数学相关笔记是基于阅读书籍<3D数学基础:图形与游戏开发>而来,实现代码使用AS3,项目地址是:https://github.com/hammerc ...

  10. 精彩,sinox.org官网贴满winxp死亡大字报

    sinox杀死windowxp不可避免,不用说,微软还自己掐死他!!! 中国人会升级正版 windows7吗?昨天也许会,但今天不会了,因为 sinox大字报出来了! 这下举国皆知了. 换装sinox ...