float/double,乘以一定的系数,转成int。

解决方案 »

  1.   

    有啊,就是我在下载资源的时候,比如apk安装文件,然后要在进度下显示spk文件的大小。
      

  2.   

    我不是要设置为int,我是想要让其显示float型的。
      

  3.   

    楼主太在意了 没事的,apk大小咱们都是用XXXXbit表示的吧,难道你想用XX.XXM or XX.XX KB 表示吗?? 假设你的apk 1M大小  那就1024KB 或者1024*1024 bit 大小呗 ,不需要小数的,没意义!!
      

  4.   

    是啊,我就想想用XX.XXM 表示,但是不知道有没有方法解决,setProgress只能设置一个int的,后面的单位也不知道如何表示出来,1M用bit表示那不是有好长一串,看着不舒服。
      

  5.   

    float res = (float) (downloadSize * 100.0 / fileSize); //得到现在的float进度
    res = (float)(Math.round(res*100))/100;//将float转换为两位小数。
    tv.setText("已下载:" + res + "%");//显示出来 
    我是这样做的额
      

  6.   

    7楼是自己定义了个布局文件吧。我是直接在new出来的ProgressDialog,不知道这样可不可以显示小数。你用TextView貌似可以这样做。
      

  7.   

    嗯,这些我都能够得到,我就是这样做的,关键是我是在代码中直接new出来个ProgressDialog,然后想setProgress的时候有木有办法设置为小数。而setProgress只能设置为int,不知道这样解释明不明白我的意思。
      

  8.   

    自定义显示格式:
    progressDialog.setProgressNumberFormat("%1d kb/%2d kb"); 
    当前进度填入%1d位置,总数填入%2d。
    这个方法是自动填充的,只要在初始化时,加上这一句,
    调用progressDialog.setMax(int )后会自动将总数填入%2d.
    同理,调用progressDialog.setProgress(int )后会自动将当前进度填入%1d.但是,从setMax,setProgress的输入参数可知这2个方法只接收整数。
    如果进度显示的样式只要求为整数形式,那么在初始化时,定义一次
    progressDialog.setProgressNumberFormat("%1d kb/%2d kb"); 就可以了。那要如何显示小数呢? 很简单,既然setProgressNumberFormat()能显示自定义的"/","kb",
    这些字符,那么就能显示我们需要的自定义字符串。所以,干脆就让这个方法不接收前面
    说的当前进度%1d,和总数%2d,而是直接显示我们需要的处理好的字符串即可:
    (文件大小fileLength,已下载大小downLength)
    初始化时: progressDialog.setMax(fileLength);
    每一次刷新下载进度时:
    progressDialog.setProgress(downLength);
    float all = fileLength/1024/1024;
    float percent = downLength/1024/1024;
    progressDialog.setProgressNumberFormat(String.format("%.2fM/%.2fM", percent, all));注意:setProgressNumberFormat这个方法要求版本最小为 android:minSdkVersion="11"
      

  9.   

    自定义显示格式:
    progressDialog.setProgressNumberFormat("%1d kb/%2d kb"); 
    当前进度填入%1d位置,总数填入%2d。
    这个方法是自动填充的,只要在初始化时,加上这一句,
    调用progressDialog.setMax(int )后会自动将总数填入%2d.
    同理,调用progressDialog.setProgress(int )后会自动将当前进度填入%1d.但是,从setMax,setProgress的输入参数可知这2个方法只接收整数。
    如果进度显示的样式只要求为整数形式,那么在初始化时,定义一次
    progressDialog.setProgressNumberFormat("%1d kb/%2d kb"); 就可以了。那要如何显示小数呢? 很简单,既然setProgressNumberFormat()能显示自定义的"/","kb",
    这些字符,那么就能显示我们需要的自定义字符串。所以,干脆就让这个方法不接收前面
    说的当前进度%1d,和总数%2d,而是直接显示我们需要的处理好的字符串即可:
    (文件大小fileLength,已下载大小downLength)
    初始化时: progressDialog.setMax(fileLength);
    每一次刷新下载进度时:
    progressDialog.setProgress(downLength);
    float all = fileLength/1024/1024;
    float percent = downLength/1024/1024;
    progressDialog.setProgressNumberFormat(String.format("%.2fM/%.2fM", percent, all));注意:setProgressNumberFormat这个方法要求版本最小为 android:minSdkVersion="11"
      

  10.   

    当然。 自定义一个ProgressDialog也是一个很不错的方法。