文档章节

Android 第十二课——UI ProgressBar

learn_more
 learn_more
发布于 2015/01/11 16:19
字数 614
阅读 205
收藏 3

Android UI 图:

7 ProgressBar

进度条视图,这种视图有两种方式展示,一种是不知道什么时候可以结束的旋转视图展示,例如我们web后台请求是根本不知道后台什么时候可以返回数据;一种是进度条展示,类似于下载,这种明确知道共有多少数据,已经获取到了多少数据的进度条展示。

1)旋转图标:

注意:当请求完成是应该隐藏图标,任务开始时显示图标。

通过设置 ProgressBar 的 Visibility 属性为 View.GONE (值 8)来隐藏它。INVISIBLE 和 GONE 常量的区别在于 INVISIBLE 常量只是隐藏 ProgressBar(ProgressBar 仍旧在活动中占据空间)。GONE 常量则从活动中移除 ProgressBar 视图,它不再占据任何空间。View.VISIBLE自然就是显示的意思。只有这三个值,而且是与其他组件通用属性,在xml中使用标签:android:visibility

layout.xml 代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
     >
    <Button 
        android:id="@+id/start_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="动作开始"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="当前进度:"
        />
    <ProgressBar 
       	android:id="@+id/progress_btn"
       	android:layout_width="match_parent"
       	android:layout_height="wrap_content"
       	android:visibility="visible"
       	/>
</LinearLayout>

Activity代码:

public class ProgressBarActivity extends Activity {
	
	private ProgressBar bar;
	private Button btn;
	
	private int progressStatus;
	private Handler handler;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.activity_progressbar);
		
		bar = (ProgressBar)findViewById(R.id.progress_btn);
		btn = (Button)findViewById(R.id.start_btn);
		btn.setOnClickListener(new BtnClickImpl());
		
		handler = new Handler();
	}
	class BtnClickImpl implements OnClickListener{

		@Override
		public void onClick(View view) {
			// TODO Auto-generated method stub
			new Thread(){
				public void run() {
					// 开始
					handler.post(new Runnable() {
						@Override
						public void run() {
							// TODO Auto-generated method stub
							Toast.makeText(ProgressBarActivity.this,"开始...", Toast.LENGTH_SHORT).show();
							//bar.setMax(100);
							bar.setVisibility(View.VISIBLE);
						}
					});
					// 运行中....
					while(progressStatus < 100){
						progressStatus++;
						try {
							Thread.sleep(50l);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
						handler.post(new Runnable() {
							public void run() {
								// TODO Auto-generated method stub
								//bar.setProgress(progressStatus);
							}
						});
					}
					// 结束
					handler.post(new Runnable() {
						@Override
						public void run() {
							// TODO Auto-generated method stub
							Toast.makeText(ProgressBarActivity.this, "动作完成..", Toast.LENGTH_SHORT).show();
							progressStatus = 0;
							bar.setVisibility(View.GONE);
						}
					});
				};
			}.start();
		}
	}
}

效果:

2)进度条图标

注意:当请求开始时:设置progressBar的最大值,以及初始化他的progress(起始值);请求结束时:隐藏进度条,把progress设置为初始值。在运行中,通过不断改变progress的值,来展示进度条的具体进度。

layout.xml

<ProgressBar 
       	android:id="@+id/progress_btn"
       	android:layout_width="match_parent"
       	android:layout_height="wrap_content"
       	android:visibility="visible"
       	style="@android:style/Widget.ProgressBar.Horizontal"
       	/>

Activity.java代码和上面的差不了多少,只要把单行注释放开即可。

效果:



© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
在项目中值得学习和利用的Android开源项目分类汇总

http://blog.csdn.net/dianyueneo/article/details/40683285 Android开源项目第一篇——个性化控件(View)篇 包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、Pro......

_FQ_
2014/12/24
19
1
android AsyncTask介绍

AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(...

postdep
2014/04/07
126
0
AsyncTask和Handler对比

AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(...

等待流星
2014/03/13
30
0
android AsyncTask介绍

1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更...

freeroad
2014/09/28
37
0
Android 异步处理AsyncTask

AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(...

jackxu2015
2015/08/14
41
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
5
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
10
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部