您的位置:首页 > 移动开发 > Android开发

Android实现标题上显示隐藏进度条效果

2017-12-26 14:27 627 查看

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

具体实现方法:
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);
}
}
}

运行效果如下:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 进度条