本文实例讲述了Android编程实现显示在标题上的进度条功能。分享给大家供大家参考,具体如下:
公司主营业务:做网站、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出竞秀免费做网站回馈大家。
今天我们来学习一下Android中显示在Activity标题上的进度条。在这个例子当中我们还能够学习到很多关于AsyncTask的知识。
(1)准备用于显示到界面上的四张图片img01,img02,img03,img04
(2)在Activity的布局文件activity_main.xml中只定义一个线性布局LinearLayout,并为其设置一个id,代码如下:
(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,效果如下:
进度条执行完毕后,界面会显示四张图片。
附:完整实例代码点击此处本站下载。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。