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

  • 相关阅读:
    SQL Server 服务由于登录失败而无法启动
    一个项目涉及到的50个Sql语句
    sql server2008 数据库镜像的问题
    C# 根据枚举名(string)获得enum中的枚举值
    在不同版本的 IIS 上使用 ASP.NET MVC(转)
    sqlite 默认当前时间
    Nginx反向代理后防盗链设置
    JavaScript 图片加载
    nginx配置文件中的location中文详解
    程序设计的十个做与不做
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6866211.html
Copyright © 2011-2022 走看看