模拟下载_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 模拟下载

模拟下载

 2014/11/27 23:17:00  catcher_1224  程序员俱乐部  我要评论(0)
  • 摘要:主界面有个开始下载按钮,点击按钮以后开始模拟下载界面布局:1<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"2xmlns:tools="http://schemas.android.com/tools"3android:layout_width="match_parent"4android:layout_height="match_parent"5android
  • 标签:下载

主界面有个开始下载按钮,点击按钮以后开始模拟下载

界面布局:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context="com.example.d27.MainActivity" >
10 
11     <Button
12         android:id="@+id/button1"
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:layout_alignParentLeft="true"
16         android:layout_alignParentTop="true"
17         android:text="开始下载"
18         android:onClick="onClick" />
19 
20 </RelativeLayout>

java部分代码如下:

 1 package com.example.d27;
 2 
 3 import android.app.Activity;
 4 import android.app.ProgressDialog;
 5 import android.os.Bundle;
 6 import android.os.Handler;
 7 import android.os.Message;
 8 import android.view.View;
 9 import android.widget.Toast;
10 
11 public class MainActivity extends Activity {
12     private ProgressDialog dialog;
13     private Handler handler = new Handler() {
14         public void handleMessage(Message msg) {
15             switch (msg.what) {// 判断消息
16             case 1:
17                 dialog.show();// 显示dialog
18                 break;
19             case 2:
20                 dialog.setMax(msg.arg2);// 设置dialog的最大值
21                 dialog.setProgress(msg.arg1);// 设置进度条
22                 dialog.setMessage("正在下载第" + msg.arg1 + "部分");// 设置内容
23                 break;
24             case 3:
25                 dialog.dismiss();// 不显示dialog
26                 Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT)
27                         .show();// 通知下载完成
28                 break;
29             }
30         };
31     };
32 
33     @Override
34     protected void onCreate(Bundle savedInstanceState) {
35         super.onCreate(savedInstanceState);
36         setContentView(R.layout.activity_main);
37         // 初始化dialog
38         initDialog();
39     }
40 
41     // 初始化ProgressDialog
42     private void initDialog() {
43         // 创建dialog
44         dialog = new ProgressDialog(this);
45         // 设置dialog的样式为水平
46         dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
47         // 设置图标
48         dialog.setIcon(android.R.drawable.ic_dialog_info);
49         // 设置标题
50         dialog.setTitle("正在下载");
51         // 设置内容
52         dialog.setMessage("");
53         // 设置是否可以取消dialog
54         dialog.setCancelable(false);
55     }
56 
57     //开始下载按钮点击事件
58     public void onClick(View view) {
59         // 开启工作线程模拟下载,并发送消息给主线程更新界面
60         new Thread(new Download()).start();
61     }
62 
63     class Download implements Runnable {
64 
65         @Override
66         public void run() {
67             // 发送消息让主线程显示dialog
68             handler.sendEmptyMessage(1);
69             for (int i = 0; i <= 10; i++) {
70                 // 发送消息让主线程更新进度条
71                 handler.obtainMessage(2, i, 10).sendToTarget();
72                 try {
73                     // 当前线程休眠1秒来模拟下载
74                     Thread.sleep(1000);
75                 } catch (InterruptedException e) {
76                     e.printStackTrace();
77                 }
78             }
79             // 下载完成,发送消息给主线程
80             handler.sendEmptyMessage(3);
81         }
82 
83     }
84 }

 

---恢复内容结束---

上一篇: Android -- Camera源码简析,启动流程 下一篇: 没有下一篇了!
发表评论
用户名: 匿名