我们如何在按钮中显示进度图标

时间:2010-08-11 05:18:42

标签: android

我需要在按钮中显示进度图标,以便用户在处理后台任务时可以与其他GUI元素进行交互。

我在Android开发者网站上搜索过,发现我们可以使用动画drawable但不知道如何使用它们。请同样告知。

2 个答案:

答案 0 :(得分:2)

在不使用动画drawable的情况下执行此操作的非常简单的方法是在设计布局xml中使用“PregressBar”组件。当你需要显示它时,只需将它的可见性属性设置为可见,当你需要隐藏它时,你可以将它的可见性属性设置为GONE。但请记住这是UI任务,因此当您需要使用非UI线程执行此操作时,您需要使用Handler在运行时设置“ProgressBar”组件的状态。

下面是布局文件中的组件。

<ProgressBar 
android:id="@+id/progressBar1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</ProgressBar>

以下是用java文件编写的代码

ProgressBar prg;
 @Override    
    public void onCreate(Bundle savedInstanceState) 
    {         
        super.onCreate(savedInstanceState);         
        setContentView(R.layout.main1); 
         prg=(ProgressBar)findViewById(R.id.ProgressBar1);
         prg.setVisibility(ProgressBar.GONE);
  }
public void start_background_process()
{
// starting the process
 prg.setVisibility(ProgressBar.VISIBLE);

new Thread(new Runnable() 
         { public void run() 
         { 
         // Do your background stuff here which takes indefinite time
        mHandlerUpdateProgress.post(mUpdateUpdateProgress);

         }
      } ).start();
}
final Handler mHandlerUpdateProgress= new Handler();

   final Runnable mUpdateUpdateProgress = new Runnable() {
       public void run() {
// ending the process
          prg.setVisibility(ProgressBar.GONE);
       }
   };

答案 1 :(得分:0)

如果默认进度指示器足够好(即旋转轮),则可以使用ProgressBar。要将其从正常进度条更改为旋转轮,请使用progressBar.setIndeterminate(true)