进度条是一个很头疼的问题,当然弄明白了也很好理解,用起来也很方便,大都会涉及到两个,一个是圆形,另外一个则是长方形,一点一点推进的
对于圆形比较简单,先说说长方形的原理:
首先需要获取文件大小,在循环写的时候就进行加减乘法运算,哈哈,就这么简单!
给个例子吧:
public class Android_X5_SOSO_9_9_2Activity extends Activity { /** Called when the activity is first created. */ ProgressBar pb; TextView tv; int fileSize; int downLoadFileSize; String fileEx,fileNa,filename; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) {//定义一个Handler,用于处理下载线程与UI间通讯 if (!Thread.currentThread().isInterrupted()) { switch (msg.what) { case 0: pb.setMax(fileSize); case 1: pb.setProgress(downLoadFileSize); int result = downLoadFileSize * 100 / fileSize; tv.setText(result + "%"); break; case 2: Toast.makeText(Android_X5_SOSO_9_9_2Activity.this, "文件下载完成", 1000).show(); break; case -1: String error = msg.getData().getString("error"); Toast.makeText(Android_X5_SOSO_9_9_2Activity.this, error, 1000).show(); break; } } super.handleMessage(msg); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); pb=(ProgressBar)findViewById(R.id.down_pb); tv=(TextView)findViewById(R.id.tv); new Thread(){ public void run(){ try { String localpath=Environment .getExternalStorageDirectory() .getAbsolutePath()+"/CXSOSO/" +"20110901005.3gp"; down_file(localpath,"/sdcard/"); //下载文件,参数:第一个URL,第二个存放路径 } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } public void down_file(String url,String path) throws IOException{ //下载函数 filename=url.substring(url.lastIndexOf("/") + 1); //获取文件名 /*URL myURL = new URL(url); URLConnection conn = myURL.openConnection(); conn.connect();*/ /*InputStream is = conn.getInputStream(); this.fileSize = conn.getContentLength();//根据响应获取文件大小 */ File file = new File(url); DataInputStream is = new DataInputStream(new BufferedInputStream(new FileInputStream(file))); try { this.fileSize=read(file).length; } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } if (this.fileSize <= 0) throw new RuntimeException("无法获知文件大小 "); if (is == null) throw new RuntimeException("stream is null"); FileOutputStream fos = new FileOutputStream(path+filename); //把数据存入路径+文件名 byte buf[] = new byte[1024]; downLoadFileSize = 0; sendMsg(0); do { //循环读取 int numread = is.read(buf); if (numread == -1) { break; } fos.write(buf, 0, numread); downLoadFileSize += numread; sendMsg(1);//更新进度条 } while (true); sendMsg(2);//通知下载完成 try { is.close(); } catch (Exception ex) { Log.e("tag", "error: " + ex.getMessage(), ex); } } private void sendMsg(int flag) { Message msg = new Message(); msg.what = flag; handler.sendMessage(msg); } public byte[] read(File myfile) throws Throwable{ //定义输入流,将文件写入到fpath中 DataInputStream inStream = new DataInputStream(new BufferedInputStream(new FileInputStream(myfile))); byte[] data = readFile(inStream); // data.length; return data; } public static byte[] readFile(InputStream inStream) throws Throwable{ int len = 0; byte[] buffer = new byte[1024]; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); while((len = inStream.read(buffer))!=-1){ outStream.write(buffer,0,len); } outStream.close(); return outStream.toByteArray(); } }
相关推荐
【机构调研】互联网服务-彩讯股份(300634)分析师会议-20240811.pdf【机构调研】互联网服务-彩讯股份(300634)分析师会议-20240811.pdf【机构调研】互联网服务-彩讯股份(300634)分析师会议-20240811.pdf【机构调研】...
基于对国家大数据、云计算的未来发展的产业政策,以及技术转化应用市场前景的共识,彩讯公司与华北电力大学建立了战略合作关系,双方将针对电力行业大数据的应用和技术研究开展合作。另外,彩讯与广州中国科学院软件...
- **企业彩讯**:企业版短信平台,用于发布通知、促销信息等。 - **移动办公**:包括云存储、在线协作、移动审批等功能,实现随时随地办公。 总结起来,这个移动信息化产品包推荐方案是针对烟草行业的全面信息化...
- **应用软件领域**: 金山办公、泛微网络、致远互联、彩讯股份、汉得信息、新致软件等公司值得考虑。 #### 结论 AI Agent作为通向AGI的重要路径之一,正迅速发展并展现出广阔的应用前景。通过结合先进的大模型...
300634_彩讯股份上市招股说明书.pdf
彩讯矩阵控制软件v2.0.exe
- **开发环境**:选择合适的开发工具和模拟器,如使用Chrome或Safari进行开发,通过虚拟机运行MacOS来使用iPhone模拟器。 #### 五、案例分析 1. **第一个版本**:针对iPad开发,使用了AJAX和CSS3技术,主要面向iOS...
- **描述**:SpringMVC作为Spring框架的一部分,是一种基于MVC模式的轻量级Web框架,该候选人能够熟练使用它来构建Web应用程序,包括控制器的编写、视图层的管理等。 #### JQuery - **技能水平**:熟练 - **描述**...
彩讯液晶DID拼接幕墙是一种广泛应用于会议室、控制中心、展示大厅等场所的显示技术产品。DID是Digital Information Display的缩写,意为数字信息显示。DID拼接幕墙是指通过多个显示单元拼接在一起,形成大面积的显示...
应用层建议关注:科大讯飞、金山办公、同花顺、广联达、凌志软件、彩讯股份、拓尔思、福昕软件、税友股份等。基础层建议关注海光信息、浪潮信息、景嘉微等。风险提示:AI技术商业化落地不及预期;行业竞争加剧,技术...
彩讯55寸屏设置安装注意事项: 1.非专业人事安装:安装前请先关闭防火墙(如360安全卫士,瑞星,诺盾等),等安装完并且成功启动本软件后可重新开启防火墙。 2.专业人事安装:先把防火墙拦截自动处理功能改为询问...
自主拥有垂直企业级数据优势的最佳落地场景—5G 消息:梦网科技、彩讯 网络等; 司法 AI:金桥信息 视频 AIGC:网达软件、万兴科技、魅视科技等 构建数据监测与梳理核心能力的网络可视化:浩瀚深度、中新赛克、恒为科 技...
* AI+应用:重点关注金山办公、福昕软件、同花顺、恒生电子、宇信科技、汉得信息,受益标的还包括:彩讯股份、焦点科技、润和软件、金桥信息、佳发教育、卫宁健康等。 * AI大模型:重点关注科大讯飞、拓尔思,受益...
139邮箱信任登录接口协议OpenId版本-V2.0.0是深圳市彩讯科技有限公司广州研发部为139邮箱与第三方合作商提供的一种安全登录机制。该协议的主要目标是允许用户通过他们的139邮箱账号安全地登录合作商的系统,而无需...
"AIGC生成式人工智能产业全梳理" 生成式人工智能产业已...应用层建议关注:科大讯飞、金山办公、同花顺、广联达、凌志软件、彩讯股份、拓尔思、福昕软件、税友股份等。基础层建议关注海光信息、浪潮信息、景嘉微等。
彩讯矩阵的具体技术文档未给出,但基于行业标准,我们可以推测它同样支持RS-232通信,并且具备类似的控制功能。 #### 四、KRAMER矩阵 KRAMER矩阵是一种高端的矩阵切换器,常用于专业音频视频领域。其通信协议和...
ChatGPT是由美国人工智能研究实验室OpenAI开发的一款人工智能技术驱动的自然语言处理工具,它基于Transformer神经网络架构,特别是GPT-3.5架构。这一技术的突破在于它能够理解和生成语言,通过学习大量语料库,...
例如,梦网科技和彩讯网络等公司,可能会受益于这种模式变化,提供更加智能化、个性化的信息服务。 此外,ChatGPT的广泛应用将刺激对通用技术平台的需求,如百度、360和科大讯飞等公司将可能加速AI技术研发和应用。...
在国产办公软件市场,金山办公凭借WPS等产品占据领先地位,而其他如用友网络、彩讯股份、亿联网络等也在云办公市场有所建树。彩讯股份的产品如RichMail邮件系统已集成AI能力,服务于多个大型企业。三六零通过收购...
对于个体企业,如彩讯股份、越秀金控、瑞尔特、坚朗五金和白云电器等,其解禁限售股份占流通股比例较高,可能对市场造成一定影响。 综合来看,2月产业资本的净减持和3月解禁规模的低位运行,虽然短期内可能会对市场...