zoukankan      html  css  js  c++  java
  • Android中ProgressBar显示小数的方法

    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 感谢大神们的分享!!!

  • 相关阅读:
    C++迭代器
    JdbcTemplateUtil 工具类分享
    PE和CDlinux二合一启动盘制作
    程序员自述——2019新年篇
    HTML/CSS常用单词
    JAVA学习常用单词
    Spring集成Mybatis3
    Spring集成struts2
    解决VS2010打开Web页面时经常由于内存较低而导致VS2010自动关闭的问题
    年终总结
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6866211.html
Copyright © 2011-2022 走看看