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); } } }
运行效果如下:
下图是加载过程,标题栏上方有一个进度条显示的是加载图片的进度
下图是加载完成,显示出图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
您可能感兴趣的文章:
- Android 进度条显示在标题栏的实现方法
- Android 七种进度条的样式
- android自定义进度条渐变色View的实例代码
- Android文件下载进度条的实现代码
- Android中自定义进度条详解
- Android三种方式实现ProgressBar自定义圆形进度条
- Android编程之ProgressBar圆形进度条颜色设置方法
- Android自定义水平进度条的圆角进度
- Android编程实现自定义进度条颜色的方法
- Android ProgressDialog进度条使用详解
- Android编程实现显示在标题上的进度条功能【附源码下载】
赞 (0)