当前位置: 首页 > news >正文

全州建设完小网站vi设计的概念

全州建设完小网站,vi设计的概念,中企动力网站价格,网页浏览器插件首先在onCreateDialog方法里创建一个ProgressDialog,如下#xff1a; //this表示该对话框是针对当前Activity的 progressDialog new ProgressDialog(this); //设置最大值为100 progressDialog.setMax(100); //设置进度条风格STYLE_HORIZONTAL progressDialog.setProgressStyl… 首先在onCreateDialog方法里创建一个ProgressDialog,如下 //this表示该对话框是针对当前Activity的 progressDialog new ProgressDialog(this); //设置最大值为100 progressDialog.setMax(100); //设置进度条风格STYLE_HORIZONTAL progressDialog.setProgressStyle(                 ProgressDialog.STYLE_HORIZONTAL); progressDialog.setTitle(进度条对话框); 复制代码 接下来就是进度条的进度更新因为对话框对象一直被当前Dialog保存着所以onCreateDialog在下次调用对话框时不会在被调所以 进度条更新操作不能在onCreateDialog里面而是在onPrepareDialog里面进行。 首先要将进度条置为0 progressDialog.incrementProgressBy(-progressDialog.getProgress()); 复制代码 increamentProgressBy源码中是调用了ProgressBar的setProgress(mProgress diff); mProgress是当前进度值这里的diff就是-progressDialog.getProgress(),最后结果为0所以也可以这么用效果和调用incrementProgressBy一样的如下 progressDialog.onStart(); progressDialog.setProgress(0); 复制代码 值得一提的是不能直接只用setProgress(0)来设置这样的话第一次弹出对话框效果可以和上面的一样但是之后再弹出对话框的进度一直都是100。为什么这里不能直接用setProgress(0),查看源码可以知道 if (mHasStarted) {       mProgress.setProgress(value);       onProgressChanged(); } else {       mProgressVal value; } 复制代码 mHasStarted第一次调用的时候是true当进度条达到100%时会调用onStop方法(此方法为protected,无法直接调用)将mHasStarted设置为false也就是无法setProgress(value)了只能通过onStart来将mHasStarted设置为true。 当点击“显示进度条对话框”按钮这时候需要很耗时然后才显示对话框而往往都会导致假死如果超过5秒未响应将强制关闭所以这里需要添加个多线程来做进一步处理。而进度条的增加效果是很快的所以这这里需要让大家看到效果得停几毫秒后再继续。 为了使主线程不受影响(处理当前Activity的线程)在点击按钮且耗时操作完后需要发送消息给主线程主线程再做相应处理。线程之间的消息传递和异步处理是通过Handler来做处理的相关代码如下 new Thread() {         public void run() {                 for(int i0; i100; i) {                         handler.sendEmptyMessage(INCREASE);                         if(progressDialog.getProgress() 100) {                                 break;                         }                         try {                                 Thread.sleep(50);                         } catch (InterruptedException e) {                                 e.printStackTrace();                         }                 }         } }.start(); 复制代码 Handler的处理如下Handler具体说明网上很多可以参考此处http://my.unix-center.net/~Simon_fu/?p652 handler new Handler() {         Override         public void handleMessage(Message msg) {                 switch(msg.what) {                         case INCREASE:                                 progressDialog.incrementProgressBy(1);                                 if(progressDialog.getProgress() 100) {                                 //        progressDialog.dismiss();                                 }                                 break;                 }                 super.handleMessage(msg);         } }; 复制代码 解释就到这里先看个效果图 2011-6-16 09:14 上传 下载附件(23.27 KB) 实现步骤 第一步一个按钮用来点击后弹出对话框的 res/layout/progress_dialog_layout.xml ?xml version1.0 encodingutf-8? LinearLayout   xmlns:androidhttp://schemas.android.com/apk/res/android   android:layout_widthfill_parent   android:layout_heightwrap_content   Button android:idid/button     android:text显示进度条对话框           android:layout_widthfill_parent           android:layout_heightwrap_content/ /LinearLayout 复制代码 第二步 src/com/dialog/activity/ProgressDialogActivity.java package com.dialog.activity; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; public class ProgressDialogActivity extends Activity {                 private final int PROGRESS_DIALOG 1;                 private final int INCREASE 0;                 private ProgressDialog progressDialog null;                 private Handler handler null;             Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.progress_dialog_layout);                 Button button (Button) findViewById(R.id.button);         View.OnClickListener listener                 new View.OnClickListener() {                                                                 Override                                 public void onClick(View view) {                                         showDialog(PROGRESS_DIALOG);                                 }                         };                 button.setOnClickListener(listener);                                 handler new Handler() {                         Override                         public void handleMessage(Message msg) {                                 switch(msg.what) {                                         case INCREASE:                                                 progressDialog.incrementProgressBy(1);                                                 if(progressDialog.getProgress() 100) {                                                 //        progressDialog.dismiss();                                                 }                                                 break;                                 }                                 super.handleMessage(msg);                         }                 };     }         Override     public Dialog onCreateDialog(int id) {             switch(id) {                     case PROGRESS_DIALOG:                                        //this表示该对话框是针对当前Activity的                                 progressDialog new ProgressDialog(this);                                 //设置最大值为100                                 progressDialog.setMax(100);                                 //设置进度条风格STYLE_HORIZONTAL                                 progressDialog.setProgressStyle(                                                 ProgressDialog.STYLE_HORIZONTAL);                                 progressDialog.setTitle(进度条对话框);                             break;             }             return progressDialog;     }             Override     public void onPrepareDialog(int id, Dialog dialog) {                         switch(id) {                     case PROGRESS_DIALOG:                             //将进度条清0                             progressDialog.incrementProgressBy(-progressDialog.getProgress());                             new Thread() {                                     public void run() {                                             for(int i0; i100; i) {                                                     handler.sendEmptyMessage(INCREASE);                                                         if(progressDialog.getProgress() 100) {                                                                 break;                                                         }                                                         try {                                                                 Thread.sleep(50);                                                         } catch (InterruptedException e) {                                                                 e.printStackTrace();                                                         }                                             }                                     }                             }.start();                             break;             }     } }
http://www.hkea.cn/news/14413759/

相关文章:

  • 阿里云虚拟主机可以做几个网站wordpress模板如何安装教程视频教程
  • 为了加强公司网站建设优化英语
  • 空间设计工作室网站WordPress修改页眉
  • html手机网站如何制作网站建站方案书
  • 家庭电影网站建设个人网站设计模板中文
  • 网站建设皿金手指谷哥壹柒做销售平台哪个网站好
  • 关于网站建设的论文题目长沙优化推广外包
  • 沈阳外贸网站建设wordpress修改媒体的路径
  • 做网络平台的网站有哪些免费高清视频在线观看
  • 昆明好的网站开发公司平面设计网上培训一般多少钱
  • win8.1 做网站服务器做框架模板的网站
  • 做平面那个网站素材好如何访问自己建的网站
  • 泰安网络建设seo营销型网站设计要点
  • 网站开发用哪个软件seo代运营
  • 网站建设公司口碑排名网站设计对网站建设有哪些意义?
  • 做网站网站建设企业内网怎么搭建
  • 云南站群网站建设做二手车按揭的网站
  • 做百度网站一年多少钱惠州h5网站建设
  • 厦门上网站设计建设自己怎样在百度上做推广
  • wsp网站开发wordpress特效主题免费
  • 花都有沒有网站建设的网站建设百度推广开户
  • 企业网站的建设要注意哪些方面网站的开发
  • wordpress 不同数据库青岛百度关键词优化
  • 经常修改网站的关键词好不好东莞做网站 自媒体
  • 徐州h5建站模板做擦边网站
  • mt4网站建设查看网站被恶意镜像
  • 快速的网站建设建设网站公司兴田德润在哪儿
  • 济南建设高端网站桃城网站建设公司
  • 南京网站设南京网站设计计wordpress 搜索 标题 内容
  • 怎么用ftp工具上传网站源码建筑作品集网站代做