android 进度标题,Android编程实现显示在标题上的进度条功能【附源码下载】

本文实例讲述了Android编程实现显示在标题上的进度条功能。分享给大家供大家参考,具体如下:

今天我们来学习一下Android中显示在Activity标题上的进度条。在这个例子当中我们还能够学习到很多关于AsyncTask的知识。

(1)准备用于显示到界面上的四张图片img01,img02,img03,img04

(2)在Activity的布局文件activity_main.xml中只定义一个线性布局LinearLayout,并为其设置一个id,代码如下:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:id="@+id/main_layout">

(3)Java代码部分,通过requestWindowFeature(Window.FEATURE_PROGRESS);语句设置Activity标题栏为有进度条风格,然后实例化并启动一个MyTask对象,代码如下:

public class MainActivity extends Activity {

//图片id数组

private int[] imageIds = { R.drawable.img01, R.drawable.img02,

R.drawable.img03, R.drawable.img04 };

private LinearLayout mainLayout;

/**

* Activity的入口方法

*/

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//设置标题栏有进度条

requestWindowFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.activity_main);

mainLayout = (LinearLayout)findViewById(R.id.main_layout);

//实例化MyTask并开始执行

new MyTask().execute();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

/**

* 自定义继承AsyncTask的异步类MyTask

*/

class MyTask extends AsyncTask{

/**

* 在doInBackground()方法之前执行的方法

*/

@Override

protected void onPreExecute() {

super.onPreExecute();

//设置标题栏的进度条可见

setProgressBarVisibility(true);

}

/**

* 后台执行的耗时操作

*/

@Override

protected LinearLayout doInBackground(Void... params) {

LinearLayout ll = new LinearLayout(MainActivity.this);

ll.setOrientation(LinearLayout.VERTICAL);

ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

for(int i=1; i<5; i++){

ImageView iv = new ImageView(MainActivity.this);

iv.setLayoutParams(new LayoutParams(200, 100));

iv.setImageResource(imageIds[i-1]);

ll.addView(iv);

new Thread(){

public void run() {

try {

//休眠20毫秒

Thread.sleep(20);

} catch (Exception e) {

e.printStackTrace();

}

};

}.start();

//要求更新进度条,会引起调用onProgressUpdate()方法

publishProgress(i);

}

return ll;

}

/**

* 更新进度条

*/

@Override

protected void onProgressUpdate(Integer... values) {

super.onProgressUpdate(values);

//参数值为0-10000,所以要乘以2500,values[0]取值分别是1,2,3,4

setProgress(values[0] * 2500);

}

/**

* 后台操作执行完毕后所要执行的方法

*/

@Override

protected void onPostExecute(LinearLayout result) {

super.onPostExecute(result);

mainLayout.addView(result);

}

}

}

右键运行android project,效果如下:

8bf3ce84cba46f3b4e912595bbd1f82d.png

进度条执行完毕后,界面会显示四张图片。

附:完整实例代码点击此处本站下载。

希望本文所述对大家Android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值