Android实现标题上显示隐藏进度条效果
作者:光仔December 发布时间:2022-06-13 10:40:12
标签:Android,进度条
一个界面,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,隐藏进度条并显示图片
具体实现方法:
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


猜你喜欢
- 本文将介绍Java在ICPC快速IO实现方法,下面看看
- 下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下:Park类public class
- 发现问题原需求,在一个伸缩列表中,自定义LinearLayout继承LinearLayout动态添加布局。然而实现的时候:一共遍历了30条数
- 简介Trie树,又称为前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由
- 介绍最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看
- 我有以下课程public class ModInfo : IEquatable<ModInfo>{ public int ID
- Java集合ArrayDeque类实例分析前言ArrayDeque类是双端队列的实现类,类的继承结构如下面,继承自AbastractColl
- 本文实例讲述了C#生成二维码的方法。分享给大家供大家参考。具体实现方法如下:首先引用ThoughtWorks.QRCode.dll具体代码如
- 概念介绍不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。01. 强引用这个就
- 返回集合为null还是空集合及空集合的三种写法个人认为在自己写接口时,需要返回集合时返回一个空集合,比如mybatis查询如果返回一个集合,
- Java中Collections.sort()的使用在日常开发中,很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中
- 问题引出:最近开了新项目,项目中用到了数据字典,列表查询数据返回的时候需要手动将code转换为name,到前台展示。项目经理表示可以封装一个
- 线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待
- 在基于UI元素的自动化测试中, 无论是桌面的UI自动化测试,还是Web的UI自动化测试. 首先我们需要查找和识别UI
- 修改\packages\apps\Camera\res\values\arrays.xml中的以下代码: <string-array
- Android 自定义gradle property在Android studio上运行项目,gradle的配置是必不可少的,但是随着项目的
- 本文实例讲述了从C#程序中调用非受管DLLs的方法。分享给大家供大家参考。具体方法如下:前言:从所周知,.NET已经渐渐成为一种技术时尚,那
- 本文实例讲述了C#判断当前程序是否通过管理员运行的方法。分享给大家供大家参考。具体实现代码如下:public bool IsAdminist
- 今天遇到一个问题,原来用的好好的asp网页无法打开,同时inetinfo.exe的CPU占用率很高,几乎达到了100%。看了一下系统错误日志
- 本文实例讲述了Android编程实现全局获取Context及使用Intent传递对象的方法。分享给大家供大家参考,具体如下:一、全局获取 C