Android实现标题上显示隐藏进度条效果
作者:光仔December 时间:2022-06-13 10:40:12
一个界面,实现在向页面添加图片时,在标题上显示一个水平进度条,当图片载入完毕后,隐藏进度条并显示图片
具体实现方法:
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
标签:Android,进度条
0
投稿
猜你喜欢
C#实现ini文件读写操作
2022-02-26 11:01:19
Java try-with-resource语法使用解析
2021-10-09 02:28:37
关于Maven混合配置私有仓库和公共仓库的问题
2021-10-15 20:30:51
关于SpringSecurity配置403权限访问页面的完整代码
2023-11-13 02:03:59
读取spring配置文件的方法(spring读取资源文件)
2022-10-08 11:24:21
java实现百度云OCR文字识别 高精度OCR识别身份证信息
2023-10-24 13:50:37
Spring核心IoC容器的依赖注入接口和层级包命名规范
2021-12-31 02:22:57
MyBatis全局配置文件详解
2021-09-19 10:13:32
springboot中@Async默认线程池导致OOM问题
2022-12-19 20:07:01
android studio3.0.1无法启动Gradle守护进程的解决方法
2022-05-03 01:06:28
Android Gradle多渠道打包的实现方法
2023-04-26 17:03:26
剖析Spring WebFlux反应式编程设计及工作原理
2023-06-10 20:01:13
宝塔面板配置及部署javaweb教程(全网最全)
2023-11-10 15:26:27
Java ThreadPoolExecutor线程池有关介绍
2022-11-21 02:03:20
Android实现在屏幕上移动图片的方法
2022-06-03 01:40:26
SpringBoot实现过滤器拦截器的耗时对比
2022-04-12 00:45:04
Android转场效果实现示例浅析
2023-09-21 12:10:17
基于Java中字符串indexof() 的使用方法
2022-12-09 19:37:38
一口气说出Java 6种延时队列的实现方法(面试官也得服)
2022-12-15 16:40:12
Java装饰者模式的示例详解
2022-03-30 07:26:22