Android原生的ProgressBar的ProgressDialog.STYLE_HORIZONTAL(即水平样式)默认setMax和setProgress只能传int型的参数,而实际项目中我需要显示小数类型的参数,那么该如何设置呢?

项目需求:应用版本更新的时下载最新的apk文件需要显示一个progressBar,在这个控件中需要有下载百分比提示和已下载/全部提示,并且最好显示成2.33Mb/18.44Mb这样的格式,具体操作如下:

方法一:(这个方法是在下载中添加后缀)

progressDialog.setProgressNumberFormat("%1d kb/%2d kb"); 
当前进度填入%1d位置,总数填入%2d。
这个方法是自动填充的,只要在初始化时,加上这一句,
调用progressDialog.setMax(int )后会自动将总数填入%2d.
同理,调用progressDialog.setProgress(int )后会自动将当前进度填入%1d

方法二:(这个方法是自定义下载进度的样式)

很简单,既然setProgressNumberFormat()能显示自定义的"/","kb",
这些字符,那么就能显示我们需要的自定义字符串。所以,干脆就让这个方法不接收前面
说的当前进度%1d,和总数%2d,而是直接显示我们需要的处理好的字符串即可:
(文件大小fileLength,已下载大小downLength)
初始化时: progressDialog.setMax(fileLength);
每一次刷新下载进度时:
progressDialog.setProgress(downLength);
float all = fileLength*1.0f/1024/1024;
float percent = downLength*1.0f/1024/1024;
progressDialog.setProgressNumberFormat(String.format("%.2fM/%.2fM", percent, all));

最终显示效果:

注意:setProgressNumberFormat这个方法要求版本最小为 android:minSdkVersion="11"

原博客地址:http://blog.csdn.net/u013394527/article/details/42027857 感谢大神们的分享!!!

Android中ProgressBar显示小数的方法的更多相关文章

  1. Android中EditText显示明文与密文的两种方式

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图    代码分析 方式一 /**方式一:*/ private void sh ...

  2. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  3. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  4. Android中获取文件路径的方法总结及对照

    最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...

  5. Markdown中实时显示数学公式的方法

    Markdown中实时显示数学公式的方法 Markdown非常好用,但是对于数学公式的实时显示有一些缺陷,如何解决这一问题呢? 一.在线LaTex编辑 点击在线LaTeX编辑方式 在对话框中输入数学公 ...

  6. Android实现金额显示小数点后两位

    代码改变世界 Android实现金额显示小数点后两位 NumberFormat nf = new DecimalFormat("##.##"); Double d = 554545 ...

  7. [安卓基础] 008.Android中的显示单位

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  8. Android中ProgressBar的使用-通过Handler与Message实现进度条显示

    场景 进度条效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为 ...

  9. Android中轻松显示Gif图片

    android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常不能正常显示出来,为此写了这个gifview,其用法和imageview一样使用方法:1-把GifView. ...

随机推荐

  1. 李雅普诺夫函数 LyapunovFunction 李雅普诺夫意义下的稳定性

    https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数 ...

  2. 静态代理、动态代理和cglib代理

    转:https://www.cnblogs.com/cenyu/p/6289209.html 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处 ...

  3. glibc CVE-2015-7547漏洞的分析和修复方法【转】

    本文转载自:http://blog.csdn.net/tengxy_cloud/article/details/50764370 漏洞概述 glibc中处理DNS查询的代码中存在栈溢出漏洞,远端攻击者 ...

  4. CodeForces - 55D Beautiful numbers —— 数位DP

    题目链接:https://vjudge.net/problem/CodeForces-55D D. Beautiful numbers time limit per test 4 seconds me ...

  5. POJ1077 Eight —— 正向BFS

    主页面:http://www.cnblogs.com/DOLFAMINGO/p/7538588.html 代码一:以数组充当队列,利用结构体中的pre追溯上一个状态在数组(队列)中的下标: #incl ...

  6. codeforces B. Online Meeting 解题报告

    题目链接:http://codeforces.com/problemset/problem/420/B 题目意思:给出一段连续的消息记录:记录着哪些人上线或者下线.问通过给出的序列,找出可能为lead ...

  7. Android 获取View宽度

    /***************************************************************************** * Android 获取View宽度 * ...

  8. 【伪题解】 [Offer收割]编程练习赛58

    [A:最大的K-偏差排列]: 第一次在hiho卡一题,所以暴力了搜索了一下,70分,后面回来打表找规律,规律是有和K有关的周期. 当K<=N/2时,成周期交叉变化,最后尾部部分单独考虑. 当K& ...

  9. 区间DP 等腰三角形

    题目描述:给定一个正N边形,可以通过连线将这个多边形分割成N-2个三角形,问这N-2个三角形中恰有k个等腰三角形的分割方法有多少?这个值可能很大,输出对9397取模的结果.数据范围:n,k <= ...

  10. javascript之递归得DOM文本

    var  tag=document.getElementsByTagName('body')[0]; function findChild(tag){ var child=tag.childNodes ...