显示在标题上的进度条

来源:互联网 发布:航天发票数据管理软件 编辑:程序博客网 时间:2024/05/21 10:41

 代码:


activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/linearlayout1"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="显示在标题上的进度条" /></LinearLayout>

MainActivity.java

package com.example.progress;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.ImageView;import android.widget.LinearLayout;public class MainActivity extends Activity {int imageId[] = new int[] { R.drawable.img01, R.drawable.img02,R.drawable.img03, R.drawable.img04 }; private LinearLayout l;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);requestWindowFeature(Window.FEATURE_PROGRESS);//显示水平进度条setContentView(R.layout.activity_main);l=(LinearLayout) findViewById(R.id.linearlayout1);new MyTack().execute(); // 执行自定义任务}/* * 创建异步任务,添加4张图片 */class MyTack extends AsyncTask<Void, Integer, LinearLayout>{protected void onPreExecute(){setProgressBarVisibility(true); // 执行任务前让进度条可见super.onPreExecute();}/* * 要执行的耗时任务 */protected LinearLayout doInBackground(Void... params) {// TODO Auto-generated method stubLinearLayout ll = new LinearLayout(MainActivity.this); for (int i = 1; i < 5; i++){ImageView iv = new ImageView(MainActivity.this);iv.setLayoutParams(new LayoutParams(245, 108));iv.setImageResource(imageId[i - 1]);ll.addView(iv); // 将ImageView添加到线性布局管理器中try {Thread.sleep(10); // 为了更好的看到效果,这里让线程休眠10毫秒} catch (InterruptedException e) {e.printStackTrace();}publishProgress(i); }return null;}/* * 功能:更新进度 */protected void onProgressUpdate(Integer... values) {setProgress(values[0] * 2500); // 动态更新最新进度super.onProgressUpdate(values);}/* * 功能:任务执行后 */protected void onPostExecute(LinearLayout result) {setProgressBarVisibility(false); // 任务执行后让进度条隐藏l.addView(result); // 将水平线性布局管理器添加到布局文件中添加的垂直线性布局管理器中super.onPostExecute(result);}}}

0 0