进度条(Progressbar)
进度条(Progressbar)
提供如下一些样式改变进度条的外观
@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(小环形进度条)
常用属性:
max:设置该进度条的最大值
progress:设置该进度条已完成的进度值
progressDrawable:设置该进度条的轨道对应的Drawable对象(是一个xml文件)
下面我们直接看代码:
1.Activity
//进度条
public class ProgressBarActivity extends Activity { private ProgressBar progressBarDefaultStyle1;
private ProgressBar progressBarDefaultStyle2;
private Button button; private Handler handler = new Handler(){
public void handleMessage(Message msg) {
int flag = msg.arg1;
if(flag <= 100){
progressBarDefaultStyle1.setProgress(flag);
}
if (flag <= 200) {
progressBarDefaultStyle2.setProgress(flag/2); }
if (flag==201){
progressBarDefaultStyle1.setProgress(0);
progressBarDefaultStyle2.setProgress(0);
button.setEnabled(true);
timerTask.cancel();
}
}
};
private Timer timer = new Timer();
private SendMsgTimerTask timerTask = new SendMsgTimerTask(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_bar); progressBarDefaultStyle1 = (ProgressBar)findViewById(R.id.progressBarDefaultStyle1Id);
progressBarDefaultStyle2 = (ProgressBar)findViewById(R.id.progressBarDefaultStyle2Id);
button = (Button) findViewById(R.id.buttonId); button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
button.setEnabled(false);
timer.schedule(timerTask, 5, 100);
}
}); } class SendMsgTimerTask extends TimerTask{
int flag = 0;
public void run() {
Message msg = new Message();
msg.arg1 = ++flag;
handler.sendMessage(msg);
Log.i("msg.arg1", "发消息:"+msg.arg1);
}
} @Override
protected void onDestroy() {
super.onDestroy();
timer.cancel();
} }
2.xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp" > <!-- 定义一个普通大小的环形进度条 --> <ProgressBar
android:id="@+id/progressBarInverseStyleId"
style="@android:style/Widget.ProgressBar.Inverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <!-- 定义一个大环形进度条 --> <ProgressBar
android:id="@+id/progressBarLargeStyleId"
style="@android:style/Widget.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarInverseStyleId" /> <!-- 定义一个大环形进度条 --> <ProgressBar
android:id="@+id/progressBarLargeInverseStyleId"
style="@android:style/Widget.ProgressBar.Large.Inverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarLargeStyleId" /> <!-- 定义一个小环形进度条 --> <ProgressBar
android:id="@+id/progressBarSmallStyleId"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarLargeInverseStyleId" /> <!-- 定义一个小环形进度条 -->
<ProgressBar
android:id="@+id/progressBarSmallInverseStyleId"
style="@android:style/Widget.ProgressBar.Small.Inverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarSmallStyleId" /> <!-- 定义一个默认样式的水平进度条 -->
<ProgressBar
android:id="@+id/progressBarDefaultStyle1Id"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarSmallInverseStyleId"
android:max="100" /> <!-- 定义一个指定样式的水平进度条 -->
<!-- bar_state是一个图片状态文件 -->
<ProgressBar
android:id="@+id/progressBarDefaultStyle2Id"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarDefaultStyle1Id"
android:max="100"
android:progressDrawable="@drawable/bar_state" /> <Button
android:id="@+id/buttonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBarDefaultStyle2Id"
android:text="模拟耗时操作" /> </RelativeLayout>
3.进度条的布局文件
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 定义轨道的背景 -->
<item android:id="@android:id/background" android:drawable="@drawable/no"/>
<!-- 定义轨道的成功图像 -->
<item android:id="@android:id/progress" android:drawable="@drawable/yes"/>
</layer-list>
4.效果显示图


进度条(Progressbar)的更多相关文章
- Android 自学之进度条ProgressBar
进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...
- WPF的进度条progressbar,运行时间elapse time和等待spinner的实现
今天用.NET 4.5中的TPL的特性做了个小例子,实现了WPF的进度条progressbar,运行时间elapse time和等待spinner. 先上图吧. 这个例子包含4个实现,分别是同步版 ...
- android圆形进度条ProgressBar颜色设置
花样android Progressbar http://www.eoeandroid.com/thread-1081-1-1.html http://www.cnblogs.com/xirihanl ...
- Android-SpinKit 进度条 (ProgressBar)
项目地址: https://github.com/ybq/Android-SpinKit 类别: 进度条 (ProgressBar) 打分: ★★★★★ 更新: 2016-03-28 11:17 大小 ...
- 进度条ProgressBar
在本节中,作者只写出了进度条的各种样式,包括圆形.条形,还有自定义的条形,我想如果能让条形进度条走满后再继续从零开始,于是我加入了一个条件语句.作者的代码中需要学习的是handler在主线程和子线程中 ...
- WPF 进度条ProgressBar
今天研究了一下wpf的进度条ProgressBar 1.传统ProgressBar WPF进度条ProgressBar 这个控件,如果直接写到循环里,会死掉,界面会卡死,不会有进度.需要把进度条放到单 ...
- Xamarin XAML语言教程构建进度条ProgressBar
Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...
- Android零基础入门第51节:进度条ProgressBar
原文:Android零基础入门第51节:进度条ProgressBar 不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有AP ...
- Android——进度条ProgressBar
1.activity_progressbar.xml <?xml version="1.0" encoding="utf-8"?><Linea ...
- 对进度条progressbar的调整
进度条的理解,感觉这个进度条不是那么简单,系统给我们定制了几个普通的,但是如果还需要有更加好的效果,需要自己去调试. <ProgressBar android:layout_width=&quo ...
随机推荐
- jq01--概述
jq:jQuery,是一个JavaScript函数库,为了简化js开发与编码而封装的js库,是一个“写得更少,做得更多”的js函数库,为事件处理而特别设计的.现在我们来学习一下它. 1.jq库:为事件 ...
- 8.在XamarinAndroid上进一步控制包的大小
在Android上链接 Xamarin.Android应用程序使用链接器来减小应用程序的大小.链接器使用应用程序的静态分析来确定哪些程序集.类型.成员被实际使用.链接器的行为就像一个GC,不断寻找被引 ...
- (转)Linux ldconfig 与 ldd指令
原文:https://blog.csdn.net/iamzhangzhuping/article/details/49203981 一.ldconfig ldconfig是一个动态链接库管理命令,为了 ...
- 【Git】学习记录
配置git git config --global user.name "用户名或者用户ID" git config --global user.email "邮箱&qu ...
- java文件上传-使用apache-fileupload组件
目前文件上传的(框架)组件:Apache----fileupload .Orialiy – COS – 2008() .Jsp-smart-upload – 200M. 用fileupload上传文件 ...
- jdbc调试sql语句方法
在main命令行输入三个参数到oracle 的 dept2表(自己建的 和dept一样(deptno,dname,loc)),插入到数据库中去.通过本例子,学习在java里调试sql的方法. 写完sq ...
- Javac之glb与lub
5.1.10. Capture Conversion Let G name a generic type declaration (§8.1.2, §9.1.2) with n type parame ...
- ActiveMQ发布-订阅消息模式
一.订阅杂志我们很多人都订过杂志,其过程很简单.只要告诉邮局我们所要订的杂志名.投递的地址,付了钱就OK.出版社定期会将出版的杂志交给邮局,邮局会根据订阅的列表,将杂志送达消费者手中.这样我们就可以看 ...
- AndroidStudio报错Software caused connection abort: recv failed
Software caused connection abort: recv failed 这个问题网上有一种说法 已知会导致这种异常的一个场景如下: 客户端和服务端建立tcp的短连接,每次客户端发送 ...
- onclick时间加return和不加return的区别
JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置. 而该值决定了当前操作是否继续.当返回的是true时,将继续操作.当返回是 ...