Android NumberProgressBar:动态移动显示百分比进度的进度条

NumberProgressBar是github上一个开源项目,其项目主页是:https://github.com/daimajia/NumberProgressBar


NumberProgressBar特点是当进度条在前进时候,显示出来的百分比进度数字随进度条实时显示出来,如图:

这种特点在实现一些比如下载、加载功能模块时候比较有用。如果实现上图结果,先写xml布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:custom="http://schemas.android.com/apk/res-auto"
tools:context="zhangphil.demo.MainActivity"> <com.daimajia.numberprogressbar.NumberProgressBar
android:id="@+id/number_progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
custom:progress_unreached_color="@android:color/darker_gray"
custom:progress_reached_color="@android:color/holo_red_light"
custom:progress_unreached_bar_height="5dp"
custom:progress_reached_bar_height="15dp"
custom:progress_text_size="30sp"
custom:progress_text_color="@android:color/holo_blue_bright"
custom:progress_text_offset="1dp"
custom:progress_text_visibility="visible" /> </RelativeLayout>

上层Java代码:

package zhangphil.demo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast; import com.daimajia.numberprogressbar.NumberProgressBar;
import com.daimajia.numberprogressbar.OnProgressBarListener; import java.util.Timer;
import java.util.TimerTask; public class MainActivity extends AppCompatActivity { private Timer timer;
private NumberProgressBar mNumberProgressBar; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mNumberProgressBar = (NumberProgressBar) findViewById(R.id.number_progress_bar);
mNumberProgressBar.setOnProgressBarListener(new OnProgressBarListener() {
@Override
public void onProgressChange(int current, int max) {
if (current == max) {
timer.cancel(); Toast.makeText(getApplicationContext(), "完成!", Toast.LENGTH_SHORT).show();
mNumberProgressBar.setProgress(0);
}
}
}); mNumberProgressBar.setProgress(0);
mNumberProgressBar.setMax(100); timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mNumberProgressBar.incrementProgressBy(1);
}
});
}
}, 2000, 50);
} @Override
protected void onDestroy() {
super.onDestroy();
timer.cancel();
}
}

附录文章:

1,《Android CircleProgress:可自由定制实现各种样式圆形加载进度》链接地址:http://blog.csdn.net/zhangphil/article/details/50095901


2,《Android计时器TimerTask,Timer,Handler》链接地址:http://blog.csdn.net/zhangphil/article/details/43908499

Android NumberProgressBar:动态移动显示百分比进度的进度条的更多相关文章

  1. Android开发之多线程下载、断点续传、进度条和文本显示

    代码实现了在Android环境下的多线程下载.断点续传.进度条显示和文本显示百分数: import java.io.BufferedReader; import java.io.File; impor ...

  2. Android零基础入门第51节:进度条ProgressBar

    原文:Android零基础入门第51节:进度条ProgressBar 不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有AP ...

  3. prelaod场景,用来显示资源加载进度

    phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...

  4. cv:显示Linux命令运行进度

    cv: 显示 cp.mv 等命令的进度 2014-07-14 By toy Posted in Apps Edit on GitHub 在 Linux 系统中 , 大多数命令从来都是信奉 “ 沉默是金 ...

  5. Android OkHttp文件上传与下载的进度监听扩展

    http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...

  6. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  7. Android 不同阶段 Logo 显示

    /********************************************************************* * Android 不同阶段 Logo 显示 * 说明: ...

  8. Android permission 动态申请、授权

    原文:Android permission 动态申请.授权 Android permission 新特性深度学习 本篇文章介绍android permission系统,并介绍android 6.0 p ...

  9. jquery预加载显示百分比

    jquery预加载显示百分比 <pre> <img class="bj loadimg" loadimg="/weiqingshu/images/1/b ...

随机推荐

  1. PCB DotNetCore Swagger生成WebAPI文档配置方法

    在.net framework框架下可以使用WebApiTestClientWebApi生成WebAPI接口文档与方便接口测试用,而在DotnetCore却没有找到这个工具了,baidu查找一下发现有 ...

  2. E20180115-hm

    auxiliary  adj. 辅助的; 备用的,补充的; 附加的; 副的;                n. 助动词; 辅助者,辅助人员; 附属机构,附属团体; 辅助设备;  departure  ...

  3. poj 1201 Intervals【差分约束+spfa】

    设s为前缀和,首先显然的条件是\[ s_{bi}-s_{ai-1}>=c \],然后隐含的是\[ s_i-s_{i-1}>=0 s_i-s_{i-1}<=1 \] 然后根据差分约束, ...

  4. bzoj 4198: [Noi2015]荷马史诗【哈夫曼树+贪心】

    和合并果子类似(但是是第一次听说哈夫曼树这种东西) 做法也类似,就是因为不用知道树的形态,所以贪心的把最小的k个点合为一个节点,然后依次向上累加即可,具体做法同合并果子(但是使用优先队列 注意这里可能 ...

  5. Java多线程(九) synchronized 锁对象的改变

    public class MyService { private String lock = "123"; public void testMethod() { synchroni ...

  6. ACM_区间调度问题(贪心)

    Meetings 系列一 Time Limit: 2000/1000ms (Java/Others) Problem Description: 多年之后的广财ACM编协如日中天,下系多个部门,且编协成 ...

  7. python对象以及pickle腌制

    #python对象 1.什么是python的对象 2.详解pickle腌制 1.什么是python的对象 Python的内置的对象类型主要有数字.字符串.列表.元组.字典.集合等等.其实,在pytho ...

  8. Navicat Premium 12 破解方法

    基本安装下一步下一步,破解方法参考:地址

  9. caffe2:conda路径和权限问题

    在使用conda之后,总是不能直接使用 conda install 命令,需要把codna添加到系统路径,取代默认Python. 在-/.bashrc中,添加 # added by Anaconda2 ...

  10. Docker私有仓库的构建

    [root@localhost ~]# vim /etc/sysconfig/docker #INSECURE_REGISTRY='--insecure-registry' INSECURE_REGI ...