安卓高级组件----进度条
来源:互联网 发布:日本搞笑综艺节目知乎 编辑:程序博客网 时间:2024/04/30 02:25
安卓支支持几种风格的进度条,能通过style属性呢设置进度条风格,该属性如下:
@android:style/Widget.ProgressBar.Horizontal 水平进度条
@android:style/Widget.ProgressBar.Inverse 普通环形进度条
@android:style/Widget.ProgressBar.Large 大环形进度条
@android:style/Widget.ProgressBar.Large.Inverse 大环形进度条
@android:style/Widget.ProgressBar.Small 小环形进度条
@android:style/Widget.ProgressBar.Small.Inverse 小环形进度条
同时,进度条在xml文件中还要如下属性:
android:max 设置进度条最大值
android:rpogress 指定进度条已经完成的进度值
android:ProgressDrawable 指定进度条轨道的绘制形式
进度条组件有两个最常用的方法:setProgress()设置进度条已经完成的进度;incrementProgressBy()设置进度条进度增加或减少;参数是正数时增加,负数减少;
实例操作:下面我们实现视屏进度条和环形进度条
1.新建工程,在布局中添加两个进度条,一个为环形一个水平进度条
<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:layout_weight="1" /> <ProgressBar android:id="@+id/progressBar2" style="?android:attr/progressBarStyleSmall" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" />
2.主活动中获取进度条,定义一个进度变量和消息处理Handler类对象
hp = (ProgressBar)findViewById(R.id.progressBar1); cp = (ProgressBar)findViewById(R.id.progressBar2); h = new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what == 0x11){ hp.setProgress(progress); }else { Toast.makeText(MainActivity.this, "耗时完成", Toast.LENGTH_SHORT).show(); } hp.setVisibility(View.GONE); cp.setVisibility(View.GONE); } };
3.通过匿名内部类实例化消息处理Handler类对象,重写handlerMessage()方法。耗时没有完成时更新进度,耗时完成之后出现提示
h = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 0x11){ hp.setProgress(progress); }else { Toast.makeText(MainActivity.this, "耗时完成", Toast.LENGTH_SHORT).show(); } hp.setVisibility(View.GONE); cp.setVisibility(View.GONE); } }
4.开启线程耗时,sendMessage()发送处理消息
new Thread(new Runnable() { @Override public void run() { while(true){ progress = doWork(); Message m = new Message(); if(progress <= 100){ m.what = 0x11; h.sendMessage(m); }else { m.what = 0x10; h.sendMessage(m); break; } } } private int doWork(){ progress += Math.random()*10; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return progress; } }).start();
运行代码,可以看到环形进度条和水平进度条更新。
- 安卓高级组件----进度条
- 安卓进度条组件ProgressBar的使用
- 安卓高级组件----自动完成文本框
- 安卓高级组件-------选项卡
- 安卓高级组件------图片切换器
- 安卓高级组件------网格视图
- 【Android开发】高级组件-进度条
- Android高级组件之进度条 (progressBar)
- 安卓入门--四大组件--Service高级用法
- 安卓界面高级组件-----拖动条和评星条
- 安卓自定义进度条
- 安卓自定义进度条
- 安卓进度条样式
- 安卓评分进度条RatingBar
- 安卓评分进度条RatingBar
- 安卓自定义控件 - 进度条
- 安卓圆心进度条CircleProgressView
- 安卓 进度条 的自定义
- PAT甲级1042. Shuffling Machine (20)
- 用popen实现在PHP代码异步调用服务器端的shell脚本
- 从零开始的RxJava生活(Android篇)(一)
- 自己动手搭建苹果推送Push服务器
- Java集合——ArrayList与Vector的区别
- 安卓高级组件----进度条
- 服务器在内网用vnc访问内网服务器
- 左移 右移 逻辑右移 算术右移
- 高斯拉普拉斯金字塔资料整理
- 编程极简入门(python)-02-安装python环境
- jvm配参方式
- 对于Unity3D编辑器拓展的一些小结
- 一天一个LINUX命令教程[3]-chgrp命令--故名思议:change group[ chgrp ]
- redis:压缩列表