//1.创建一个okhttp客户端对象 OkHttpClient okHttpClient = new OkHttpClient(); //2.创建一个请求的对象....默认就是get方式 Request request = new Request.Builder() .url("http://mirror.aarnet.edu.au/pub/TED-talks/911Mothers_2010W-480p.mp4") .build(); //3.客户端要去调用一个请求的对象 Call call = okHttpClient.newCall(request); ByteArrayOutputStream bao=new ByteArrayOutputStream(); //4.执行....指定同步还是异步请求的方式....call.execute()同步的方式 try { Response response = call.execute(); long lenthg = response.body().contentLength(); progressBar.setMax((int) lenthg); if (response.isSuccessful()){ InputStream inputStream = response.body().byteStream(); BufferedInputStream bu=new BufferedInputStream(inputStream); byte[] bytes = new byte[1024]; int bytesRead=0; //将文件大小分成100分,每一分的大小为unit int hh= (int) (lenthg/100); int count=0; while (-1!=(bytesRead=bu.read(bytes,0,bytes.length))) { bao.write(bytes, 0, bytesRead); count+=bytesRead; int unitProgress = 0; progressBar.setProgress(count); //计算当前百分比进度 int temp = count / hh; if (temp >= 1 && temp > unitProgress) {//如果下载过程出现百分比变化 unitProgress = temp;//保存当前百分比 Log.d("TAG",unitProgress+"--"); } }
下载进度条的计算
最新推荐文章于 2025-03-15 19:16:46 发布