ProgressWait

preview
共80个文件
png:33个
class:14个
xml:13个
需积分: 0 0 下载量 190 浏览量 更新于2015-07-14 收藏 1.54MB RAR 举报
在Android开发中,"ProgressWait"通常指的是在执行耗时操作时显示的一种等待动画或进度指示器,以告知用户程序正在后台处理数据或执行任务。本主题涉及到两种实现方法:帧动画和线程控制。 我们来看帧动画的方式。帧动画是通过连续播放一系列图片来创建动态效果的方法。在Android中,可以使用`AnimationDrawable`类来实现。以下步骤展示了如何创建一个帧动画: 1. 创建一个XML文件(如`res/drawable/frame_progress.xml`),在其中定义帧动画资源。每一帧是一个单独的图片,这些图片将按照指定的顺序和时间间隔播放。 ```xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/frame1" android:duration="50" /> <item android:drawable="@drawable/frame2" android:duration="50" /> ... </animation-list> ``` 2. 在布局文件中添加一个ImageView,将其背景设置为帧动画资源。 ```xml <ImageView android:id="@+id/progress_wait" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/frame_progress" /> ``` 3. 在代码中启动和停止动画。 ```java AnimationDrawable animation = (AnimationDrawable) findViewById(R.id.progress_wait).getBackground(); animation.start(); // 开始动画 animation.stop(); // 停止动画 ``` 接下来,我们讨论使用线程实现进度等待的效果。这种方法通常涉及到自定义进度条或者利用异步任务(AsyncTask)来更新UI。例如,你可以创建一个自定义的进度对话框,使用Handler和Runnable来定时更新进度条状态: 1. 创建一个自定义进度对话框布局文件,包含一个ProgressBar和一个TextView用于显示进度信息。 2. 在Activity或Fragment中,创建一个Handler对象,用于发送消息到主线程更新UI。 3. 使用Runnable和postDelayed方法创建一个无限循环,模拟任务的执行过程。每次循环,更新进度条的值,并通过Handler发送一个消息到主线程刷新UI。 4. 当任务完成时,取消Runnable的循环并关闭对话框。 以下是一个简单的示例: ```java Handler handler = new Handler(Looper.getMainLooper()); final ProgressBar progressBar = findViewById(R.id.progress_bar); Runnable progressRunnable = new Runnable() { @Override public void run() { if (progressBar.getProgress() < 100) { progressBar.incrementProgressBy(1); handler.postDelayed(this, 100); // 每100毫秒更新一次 } else { // 任务完成,关闭对话框或停止动画 } } }; // 启动进度更新 handler.post(progressRunnable); ``` 以上就是"ProgressWait"的两种实现方式。帧动画更直观易懂,适用于简单等待场景;而线程控制则更加灵活,适合复杂的进度更新需求。在实际开发中,开发者可以根据项目需求和用户体验选择合适的实现方式。
身份认证 购VIP最低享 7 折!
30元优惠券