ProgressDialog进度条更改文件单位

2024-06-06 08:48

本文主要是介绍ProgressDialog进度条更改文件单位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ProgressDialog进度条更改文件单位

效果图

效果图

重点部分

重点方法:setProgressNumberFormat

DownLoadRunnable:模拟下载线程

package com.demo.progress;/*** Created by talon on 2020/5/20* note: 模拟下载线程*/
public class DownLoadRunnable implements Runnable {// 模拟数据大小10Mprivate long fileLength = 10 * 1024 * 1024;private UpdateCallBack updateCallBack;void setUpdateCallBack(UpdateCallBack callBack) {updateCallBack = callBack;}@Overridepublic void run() {long curLength = 0;while (true) {try {Thread.sleep(100);curLength = curLength + 100000;if (updateCallBack != null)updateCallBack.updateProcess(fileLength, curLength);if (curLength >= fileLength)break;} catch (InterruptedException e) {e.printStackTrace();}}}
}

MainActivity: ProgressDialog的具体实现

package com.demo.progress;import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;import java.util.Locale;/*** Created by talon on 2020/5/20* note: progressDialog 显示百分比和文件大小*/
public class MainActivity extends AppCompatActivity implements UpdateCallBack {private ProgressDialog mProgressDialog;private DownLoadRunnable mDownLoadRunnable;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mDownLoadRunnable = new DownLoadRunnable();mDownLoadRunnable.setUpdateCallBack(this);mProgressDialog = new ProgressDialog(this);mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);mProgressDialog.setCancelable(false);mProgressDialog.setTitle("下载中...");}public void Start(View view) {mProgressDialog.show();new Thread(mDownLoadRunnable).start();}@Overridepublic void updateProcess(final long all, final long cur) {runOnUiThread(new Runnable() {@Overridepublic void run() {if (cur >= all) {mProgressDialog.dismiss();return;}float allFloat = (float) all / 1024 / 1024;float curFloat = (float) cur / 1024 / 1024;mProgressDialog.setProgressNumberFormat(String.format(Locale.CHINA, "%.2fM/%.2fM", curFloat, allFloat));mProgressDialog.setMax((int) all);mProgressDialog.setProgress((int) cur);}});}}

UpdateCallBack: 线程和界面之间的桥梁

package com.demo.progress;/*** Created by talon on 2020/5/20* note: 接口通信-桥梁*/
public interface UpdateCallBack {void updateProcess(long all, long cur);}

demo地址

https://download.csdn.net/download/u011368551/12453905

这篇关于ProgressDialog进度条更改文件单位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035637

相关文章

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

poj 1981 单位圆套最多点

题意: 给n(300)个点,用单位圆去套他们,问最多能套多少个点。 解析: 点击打开链接 直接当作单位圆套最多点的模板吧,用极脚来排序。 代码: #pragma comment(linker, "/STACK:1677721600")#include <map>#include <set>#include <cmath>#include <queue>

单位权中误差 详细介绍

单位权中误差(Unit Weight Error, UWE)是用于描述测量数据不确定性的一个统计量,特别是在地理信息系统(GIS)、导航和定位系统中。它主要用于评估和比较不同测量系统或算法的精度。以下是对单位权中误差的详细介绍: 1. 基本概念 单位权中误差(UWE): 定义:单位权中误差表示每个观测值(测量值)在估算中的标准误差。它是误差的一个统计量,主要用于评估测量系统的精度。单位:通常

[项目][CMP][直接向堆申请页为单位的大块内存]详细讲解

目录 1.系统调用 1.系统调用 Windows和Linux下如何直接向堆申请页为单位的大块内存: VirtualAllocbrk和mmap // 直接去堆上按页申请空间static inline void *SystemAlloc(size_t kpage){#ifdef _WIN32void *ptr = VirtualAlloc(0, kpage << 13,

C++实现百分号进度条的程序

#include<iostream>#include<Windows.h>//Sleep调用using namespace std;int main(){std::cout << "\n正在输出记录数据...... ";for( int i=0; i <= 100; i++ ) // 打印百分比 {std::cout.width(3);//i的输出为3位宽std::cout <<

HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题

本文旨在纪录自己对TextTimer使用过程的疑惑问题 我在查看教程时候,发现很多博客在onTimer(event: (utc: number, elapsedTime: number) => void) 这里提到elapsedTime:计时器经过的时间,单位为毫秒。我不清楚是否为版本问题。 在我查看version11和version10的api时候,说的都是设置格式的最小单位。 经过个人检验的

初识Linux · 进度条

目录 前言: 1 缓冲区和回车换行 2 进度条 前言: 我们目前学习了些许知识,已经足够支持我们写一个非常非常小的项目了,即进度条,相信大家都有过下载游戏,等待游戏更新完成的时候,那么此时就有一个进度条,代表着游戏的更新进度,那么我们今天就来模拟实现这个过程,在此之前,我们需要一些预备知识。 1 缓冲区和回车换行 回车换行?是的,你没有看错,相信不少人对换行有一定的误解,我们

兔子-更改 Apache 默认网站根目录

1.到Apache的安装目录下找到conf文件夹,该文件夹内会httpd.conf这样一个文本文档,它是Apache的配置文件。2.Ctrl+F组合键,找到 DocumentRoot D:/Apache/htdocs 将D:/Apache/htdocs改为你自定义的网站目录; 3.找到 <Directory D:/Apache/htdocs 将D:/Apache/htdocs改为你自定义的网

【CSS】尺寸单位

在 CSS 中,常见的尺寸单位有以下几种: 像素(px): 这是最常用的绝对单位。例如 width: 200px; 表示宽度为 200 像素。像素是固定的尺寸,不会随着屏幕分辨率或设备的不同而变化。 备注: 在不同的设备上,px 对应的物理尺寸并不固定。 对于电脑显示器,px 通常与屏幕的物理像素相对应,但这也会受到屏幕分辨率和缩放设置的影响。例如,在标准分辨率(通常为 96 DPI 左右

存储单位,有更不伦不类的定义吗?

看到一本书中关于存储单位的定义: 存储单位是一种计量单位,指在某一领域以一个特定量或标准作为一个记录(计数)点,再以此点的某个倍数去定义另一个点,而这个点的代名词就是计数单位或存储单位。 甚至在百度百科中对“存储单位”的定义也是跟上面一模一样。百度百科中还给出了出处: 不知这出处是真是假?难道给大学生看的内容都要表述得这么高大上才行吗? 其实单位这个词咱从小学到大,可能让你解释你解释不