我需要在按钮中显示进度图标,以便用户在处理后台任务时可以与其他GUI元素进行交互。
我在Android开发者网站上搜索过,发现我们可以使用动画drawable但不知道如何使用它们。请同样告知。
答案 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)
。