1.设置布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ProgressBar
android:id="@+id/ProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:visibility="gone"
/>
<Button
android:id="@+id/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始"/>
</LinearLayout>
2.处理progressbar的类
public class ProgressBarTestActivity extends Activity {
/** Called when the activity is first created. */
private ProgressBar bar;
private Button startButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 得到ProgressBar
bar = (ProgressBar) findViewById(R.id.ProgressBar);
startButton = (Button) findViewById(R.id.Button);
// 当按钮按下时开始执行
startButton.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener {
public void onClick(View v) {
bar.setVisibility(View.VISIBLE);
updateBarHandler.post(updateThread);
}
}
Handler updateBarHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
bar.setProgress(msg.arg1);
updateBarHandler.post(updateThread);
}
};
Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
System.out.println("begin thread");
i = i + 10;
// 得到一个消息对象
Message msg = updateBarHandler.obtainMessage();
msg.arg1 = i;
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
updateBarHandler.sendMessage(msg);
if (i == 100) {
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
效果如图:
- 大小: 10.8 KB
分享到:
相关推荐
一个简单的小例子,用来学习android Handler和ProgressBar的用法
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
本教程将深入探讨如何利用`Handler`消息机制来实现`ProgressBar`的动态更新,展示进度条中进度和数值的变化。 `ProgressBar`有两种主要类型:线性(Linear)和圆形(Circular)。线性`ProgressBar`通常用于表示任务...
可以使用Handler或CountDownTimer来控制进度条的显示和隐藏,比如在后台任务开始时显示,任务完成时隐藏。 9. **动画效果** Android提供了`android:animationDuration`属性,可以控制进度条动画的持续时间。同时...
本示例中,“Handler的使用”主要是讲解如何利用`Handler`来更新`ProgressBar`的进度,使得进度条每秒钟能动态地显示进度变化。 `Handler`的工作原理基于消息队列(Message Queue)和Looper。当在一个线程(如主线...
在Android开发中,ProgressBar的使用广泛,无论是文件下载、数据加载还是长时间运算,都可以用到它来提升用户体验。本教程将深入探讨ProgressBar的使用方法。 首先,ProgressBar分为两种类型:水平进度条...
在示例代码 `HandlerActivity` 中,可以看到 `MyThread` 类可能用于执行后台任务,然后通过 Handler 回调到主线程更新 UI(例如 `TextView` 和 `ProgressBar`)。按钮点击事件启动了新的线程,并创建了一个新的 ...
ProgressBar结合Android的其他机制,如Handler或AsyncTask,可以提供更好的用户体验。 在提供的`ProgressBarDemo`压缩包文件中,应该包含了一个简单的Android项目示例,你可以通过解压并导入Android Studio来运行和...
3) Service使用ProgressBar,使用Handler调用主线程的资源 2、主线程使用ProgressDialog进行显示 3、启动Service,然后创建AlertDialog.build创建,确认后跳转到Activity,再动态生成ProgressBar 备注: Service...
可以使用AsyncTask或者Handler来实现: ```java new AsyncTask, Integer, Void>() { @Override protected Void doInBackground(Void... voids) { for (int i = 0; i ; i++) { publishProgress(i); // 模拟...
主线程的Handler接收到Message后,在`handleMessage()`方法内,可以安全地使用这些数据来更新UI组件,如TextView、ProgressBar等。 4. **Message的使用** Message是消息的载体,包含了消息的类型(`what`)、附加...
在TargetActivity或Service中,你可以使用AsyncTask、Thread或Handler来执行后台任务,并通过回调或者BroadcastReceiver的方式更新主线程中的ProgressBar。 例如,使用AsyncTask: ```java private class MyTask ...
5. **Java Swing或Windows Forms的ProgressBar使用**: - **控件添加**:在设计界面时,将ProgressBar拖放到窗体上,设置其最小值、最大值等属性。 - **后台任务与事件**:使用`BackgroundWorker`类(Windows ...
为了实现自动增量,可以使用`Handler`或者`CountDownTimer`。例如,使用`Handler`的代码可能如下: ```java ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { ...
对于水平样式,使用`<ProgressBar>`标签,并设置`android:indeterminate="false"`以启用确定性进度: ```xml <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:...
同时,要注意在Android API 26及更高版本中,`ProgressDialog`已被弃用,建议使用`AlertDialog`配合`ProgressBar`来替代。 通过以上讲解,你应该对在Android中使用`ProgressBar`和`ProgressDialog`有了深入的理解。...
注意,自Android 6.0(API级别23)起,ProgressDialog已被弃用,推荐使用ProgressBar结合ProgressBar的父布局(如AlertDialog)来实现相同功能。不过,理解ProgressDialog和Handler的配合使用仍然是Android开发中的...
这个"ProgressBar.rar"压缩包很可能是你在实践中创建的一个小应用示例,用于练习和理解ProgressBar的使用。 在Android中,ProgressBar分为两种主要类型:Horizontal(水平)和Circular(圆形)。Horizontal ...
Android中Handler的学习实例,在本示例中,在主线程外开启子线程(使用匿名内部类Runnable),使用Handler中的Message传递消息(高效),操作一个ProgressBar的进度。适合初学者学习和了解Handler以及ProgressBar的...
本项目是一个针对初学者的`ProgressBar`初步学习实例,旨在帮助开发者理解如何在Android应用中集成和使用`ProgressBar`。 `ProgressBar`的基本使用: 1. **XML布局文件中的声明**:在`res/layout`目录下的XML布局...