【Android开发】范例1-显示在标题上的进度条

实现一个界面,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,隐藏进度条并显示图片

具体实现方法:
res/layout/main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:id="@+id/layout1"
    android:gravity="center">

</LinearLayout>

MainActivity:

package com.example.test;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity{
	private int imageId[]=new int[]{R.drawable.img01,R.drawable.img02,
			R.drawable.img03,R.drawable.img04};//定义并初始化一个保存要显示图片id的数组
	private LinearLayout layout;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_PROGRESS);//显示水平进度条
		setContentView(R.layout.main);
		layout=(LinearLayout)findViewById(R.id.layout1);
		new MyTack().execute();
	}

	/*
	 * 创建继承自AsyncTask的异步类,并重写onPreExecute()、doInBackground()、onProgressUpdate()
	 * 和onPostExecute方法,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,
	 * 隐藏进度条并显示图片
	 * */

	 //功能:创建异步任务,添加4张图片
	class MyTack extends AsyncTask<Void,Integer,LinearLayout>{

		@Override
		protected void onPreExecute() {
			setProgressBarVisibility(true);//执行任务前让进度条可见
			super.onPreExecute();
		}

		//功能:要执行的耗时任务(此方法异步执行)
		@Override
		protected LinearLayout doInBackground(Void... params) {
			LinearLayout layout2=new LinearLayout(MainActivity.this);
			for (int i = 1; i < 5; i++) {
				ImageView imageView=new ImageView(MainActivity.this);//创建一个ImageView对象
				imageView.setLayoutParams(new LayoutParams(245,108));
				imageView.setImageResource(imageId[i-1]);//设置要显示的图片
				layout2.addView(imageView);//将imageView添加到线形布局管理器中
				try {
					Thread.sleep(10);//为了更好的观察到效果,我们让线程休眠10毫秒
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				publishProgress(i);//触发onProgressUpdate(Progress...)方法更新进度
			}
			return layout2;
		}

		//功能:更新进度(此方法在主线程中运行)
		@Override
		protected void onProgressUpdate(Integer... values) {
			setProgress(values[0]*2500);//动态更新最新进度
			super.onProgressUpdate(values);
		}
		//功能:执行任务后(此方法在主线程中运行)
		@Override
		protected void onPostExecute(LinearLayout result) {
			setProgressBarVisibility(false);//任务执行后隐藏进度条
			layout.addView(result);//将水平线性布局管理器添加到布局文件中添加的垂直线性布局管理器中
			super.onPostExecute(result);
		}

	}
}

运行效果如下:

下图是加载过程,标题栏上方有一个进度条显示的是加载图片的进度

下图是加载完成,显示出图片

转载请注明出处:http://blog.csdn.net/acmman/article/details/44978305

时间: 2024-09-13 10:31:26

【Android开发】范例1-显示在标题上的进度条的相关文章

如何做一个从打开一个窗口到这个窗口显示到屏幕上的进度条

问题描述 我想做一个数据库查询的窗口,由于数据库比较大查询的时间较长,所以在"StatusStrip"上做了一个进度条,让这个进度条显示从数据库查询窗口载入到数据库查询完毕然后将查询的结果添加至"datagridview"上. 解决方案 解决方案二:关注一下.可以用线程委托.解决方案三:能不能给个类似的例子学习一下解决方案四:这是我很早以前翻译的一篇文章:<利用辅助线程更新用户界面>http://www.vckbase.com/document/view

java-安卓编程中,显示在标题上进度条问题

问题描述 安卓编程中,显示在标题上进度条问题 我利用ProgressBar组件按照书编写的,用的是android 4.1.2版本,但是点击按钮,标题栏没有任何的反应,然后我改了应用的主题为Holo后,程序直接报错不能运行,后来我又新建了一个android 5.0版本的,反正只要一改主题就直接报错不能运行,我想知道哪里有错么?上源码截图: 解决方案 http://blog.csdn.net/bear_huangzhen/article/details/24001201 解决方案二: 实例3:显示在

android开发银联支付在小米4c上直接ANR异常,别的手机没事,什么原因???

问题描述 android开发银联支付在小米4c上直接ANR异常,别的手机没事,什么原因??? android银联支付,点击调起银联,在别的手机上运行正常,在小米4c上直接ANR异常,什么原因??? 解决方案 http://jingyan.baidu.com/article/b2c186c8e49428c46ff6ff43.html

android notification-关于Android开发notification的显示状态

问题描述 关于Android开发notification的显示状态 我针对4.1以上的做了个notification的bigcontentview,但是如官方api所说,在首行或者通过手动拉开才能展示bigcontentview的全部内容,我能否设置成我的notification永久展示那个bigcontentview的样式啊?注:我的bigcontentview高度超过默认的普通高度,使用不设置contentTitle 和setContentText不会像以前的那种自定义下载型的remoteV

Android开发实现TextView显示丰富的文本_Android

本文实例讲述了Android开发实现TextView显示丰富的文本的方法.分享给大家供大家参考,具体如下: 如图,显示html的元素控件,点击连接实现上网,发email,拨号 实现源码如下: MainActivity.java package com.example.textview2; import android.os.Bundle; import android.app.Activity; import android.text.Html; import android.text.meth

如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标

这几天刚升级了Android studio 3.0,发现光标返回上一次浏览位置的箭头图标没有了.快捷键 ctrl+alt+左右键,按着真不方便.方便按的按键早已经被占满了,也懒得去改动快捷键了.来,把小箭头找回来.原来Android studio 3.0把Toolbr给默认关闭了,打开就好了.看下图: 总结 以上所述是小编给大家介绍的如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标,希望对大家有所帮助!

HTML5 Ajax文件上传进度条如何显示_AJAX相关

原本打算使用jquery插件进行异步文件上传,比如uploadfy但是需要额外的支持,也有人用iframe模仿异步上传机制,感觉都比较别扭.因为项目不考虑低版本浏览器,所以决定用html5实现.下面只是一个简单的demo,具体样式需要自己去做. 后台基于strut2进行文件处理,具体因项目而定.只是要注意设置文件大小的限制.  <constant name="struts.multipart.maxSize" value="52428800"/>这个配置

使用php+apc实现上传进度条且在IE7下不显示的问题解决方法_php技巧

今天整理以前写过的关于上传文件,并显示进度条的程序代码,对该代码进行优化整理.解决了一直困扰的问题:有时进度条没有达到100%,浏览器出现假死现象.在IE8.chrome测试非常完美. 项目需求: 上传APK,显示上传进度条,上传完成开始分析APK,并显示:正在分析apk数据,请稍后... ,分析完成后,显示:上传成功,重新上传 由于我电脑装的是winxp英文版,IE默认的是IE7,在测试的时候发现进度条不显示.百分比也不显示. 排除问题: 1.将DOM改成jquery方式,不显示 2.给递归调

c# winfrom-c# winfrom中在显示的信息上新增一条,怎么让新增的数据及时显示在窗体listview中?

问题描述 c# winfrom中在显示的信息上新增一条,怎么让新增的数据及时显示在窗体listview中? 新增车间后 后面的窗体显示数据直接刷新 怎么做... 解决方案 模态对话框直接写在主窗口中 if (子窗口.ShowDialog() == DialogResult.OK) { 重新加载ListView } 详细参考我写的http://bbs.csdn.net/topics/360140208 解决方案二: 点击确定后 重新加载列表,刷新一下就行了! 解决方案三: 我在新的窗体声明了一个主