6.1 在对话框中使用进度条(1)
《Android江湖》第6章人外有人,山外有山,在本章内容中讲解了Android控件的高级用法。首先讲解了对话框中使用进度条控件的基本知识和使用方法,然后依次介绍了Spinner、setDropDownViewResource、Gallery、AnalogClock和DigitalClock控件的基本用法,最后讲解了BaseAdapter容器的基本知识。本节为大家介绍在对话框中使用进度条。
第6章 人外有人,山外有山
当今武林成名剑客、侠客有很多,加上藏龙卧虎和隐居世外的高人,高手更是不计其数。看来要想在江湖中占据一席之地,还必须打下扎实的基础,并向更深层次的境界发展。都说“欲穷千里目,更上一层楼”,安卓组件的功能博大精深,要想灵活使用,还需向深层次挖掘,才能达到最高境界。“人外有人,山外有山”一直在提醒我不要骄傲,不要满足于现在所取得的成功,要成功只有通过坚持不懈的努力。同样,前面只是介绍了Android中主要组件的心法,其实还有很多其他组件,利用这些组件能够实现更为复杂的功能,下面进行具体介绍。
6.1 在对话框中使用进度条(1)
秘籍中说道:ProgressDialog进度条的功能是在对话框中实现显示进度条效果。
![]() |
练习1:练习ProgressDialog的基本使用方法
源码路径:第6章\jindu
第1步:编写布局文件main.xml,用于在界面中插入两个Button按钮。
第2步:编写文件strings.xml,用于设置标题文本。
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">使用对话框进度条</string>
- <string name="app_name">使用对话框进度条</string>
- </resources>
第3步:编写文件Activity01.java,实现单击Button按钮后的事件处理程序。其具体实现流程如下:
(1)声明进度条对话框m_pDialog;
(2)得到按钮对象mButton01和mButton02;
(3)设置mButton01的事件监听,首先创建ProgressDialog对象,然后设置进度条风格,风格为圆形、旋转的,最后分别设置ProgressDialog标题、提示信息、图标等信息;
(4)设置mButton02的事件监听,首先创建ProgressDialog对象,然后设置进度条风格,风格为长形,最后分别设置ProgressDialog 标题、提示信息、图标等信息;
(5)使ProgressDialog显示出来。
文件Activity01.java的主要实现代码如下所示:
- public class Activity01 extends Activity
- {
- private Button mButton01,mButton02;
- int m_count = 0;
- //声明进度条对话框
- ProgressDialog m_pDialog;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //得到按钮对象
- mButton01 = (Button)findViewById(R.id.Button01);
- mButton02 = (Button)findViewById(R.id.Button02);
- //设置mButton01的事件监听
- mButton01.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- // TODO Auto-generated method stub
- //创建ProgressDialog对象
- m_pDialog = new ProgressDialog(Activity01.this);
- // 设置进度条风格,风格为圆形,旋转的
- m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- // 设置ProgressDialog 标题
- m_pDialog.setTitle("温馨提示");
- // 设置ProgressDialog 提示信息
- m_pDialog.setMessage("这是圆形进度条对话框");
- // 设置ProgressDialog 标题图标
- m_pDialog.setIcon(R.drawable.img1);
- // 设置ProgressDialog 的进度条是否不明确
- m_pDialog.setIndeterminate(false);
- // 设置ProgressDialog 是否可以按退回按键取消
- m_pDialog.setCancelable(true);
- // 设置ProgressDialog 的一个Button
- m_pDialog.setButton("确定", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int i)
- {
- //单击"确定"按钮取消对话框
- dialog.cancel();
- }
- });
- // 让ProgressDialog显示
- m_pDialog.show();
- }
- });
- //设置mButton02的事件监听
- mButton02.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- // TODO Auto-generated method stub
- m_count = 0;
- // 创建ProgressDialog对象
- m_pDialog = new ProgressDialog(Activity01.this);
- // 设置进度条风格,风格为长形
- m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- // 设置ProgressDialog 标题
- m_pDialog.setTitle("温馨提示");
- // 设置ProgressDialog 提示信息
- m_pDialog.setMessage("这是长形对话框进度条");
- // 设置ProgressDialog 标题图标
- m_pDialog.setIcon(R.drawable.img2);
- // 设置ProgressDialog 进度条进度
- m_pDialog.setProgress(100);
- // 设置ProgressDialog 的进度条是否不明确
- m_pDialog.setIndeterminate(false);
- // 设置ProgressDialog 是否可以按退回按键取消
- m_pDialog.setCancelable(true);
- // 让ProgressDialog显示
- m_pDialog.show();
- new Thread()
- {
- public void run()
- {
- try
- {
- while (m_count <= 100)
- {
- // 由线程来控制进度
- m_pDialog.setProgress(m_count++);
- Thread.sleep(100);
- }
- m_pDialog.cancel();
- }
- catch (InterruptedException e)
- {
- m_pDialog.cancel();
- }
- }
- }.start();
- }
- });
- }
- }
6.1 在对话框中使用进度条(2)
程序执行后的效果如图6-1所示。
当单击图6-1中的“圆形进度条”按钮后,将显示圆形的进度条效果,如图6-2所示;当单击图6-1中的“长形进度条”按钮后,将显示长形的进度条效果,如图6-3所示。
![]()
图6-1 执行效果
![]()
图6-2 圆形进度条
![]()
图6-3 长形进度条