ProgressDialog [功能] ProgressDialog 也是一种Dialog 一般 在出现ProgressDialog 后台都会再开辟Thread 来做一些耗时的工作 我演示的是从 ProgressDialog 使用 public void startProgress(){ //to start Progress pd = ProgressDialog.show 开辟一个Thread来从100数到0 在数完后 关闭ProgressDialog public class TaskLoop implements Runnable { @Override 运行该Thread Thread loop = new Thread(new TaskLoop()); loop.start(); 4.定义一个Handler 用于接受 关闭ProgressDialog public class MyProgressUsage extends Activity { public final static int TASK_LOOP_COMPLETE = 0; ProgressDialog
ProgressDialog的使用 ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口。 // 方式一:new Dialog final ProgressDialog dialog = new ProgressDialog(this); dialog.show(); // 方式二: 使用静态方式创建并显示,这种进度条只能是圆形条,设置title和Message提示内容 ProgressDialog dialog2 = ProgressDialog.show(this, "提示" boolean cancelable 设置是否进度条是可以取消的 ProgressDialog dialog4 = ProgressDialog.show(this, "提示", "正在登陆中", 的样式有两种,一种是圆形不明确状态,一种是水平进度条状态 第一种方式:圆形进度条 final ProgressDialog dialog = new ProgressDialog(this); dialog.setProgressStyle
一般用ProgressDialog来提示用户等待耗时操作,如图中代码块 IsVideoQualityWithFace(); 如果不在单独线程中执行的话,ProgressDialog将不会显示 AlertDialog.Builder mCamera.stopRecordVideo(); } dialog.dismiss(); mDlgProgressFaceCheck = new ProgressDialog
最近工作中需要用到progressDialog,可是系统自带的黑色progressDialog又是其丑无比,无奈只能自己自定义了,在网上查看别人的例子,并自己整理了一份Demo: 先上图: MyProgressDialog MyProgressDialog setTitle(String strTitle) { return myProgressDialog; } /** * @param strMessage * @return 设置progressDialog tv_loadingmsg.setText(strMessage); } return myProgressDialog; } } 在MainActivity中对MyProgressDialog进行调用,为了模仿网络访问结束后,关闭ProgressDialog 的过程,采用了线程的sleep,运行5秒后关闭ProgressDialog,上代码: package com.example.myprogressdialog_zzw; import android.app.Activity import android.widget.Button; import android.widget.Toast; /** * @author 鹭岛猥琐男 * 采用线程的的sleep模拟下载结束后关闭progressDialog
主函数: public class MainActivity extends AppCompatActivity { private TextView tv; private ProgressDialog View.OnClickListener() { @Override public void onClick(View v) { pgd=ProgressDialog.show
解决方法吗,使用progressdialog.setCancelable(false)也行,但是这样就不能响应返回键的事件了,最好的方法是调用progressdialog.setCanceledOnTouchOutside (false),这样一切都和4.0之前的一样 下面是个例子: ProgressDialog dialog = new ProgressDialog(MainActivity.this); dialog.setTitle ; //解决方法吗,使用progressdialog.setCancelable(false)也行, //但是这样就不能响应返回键的事件了, //最好的方法是调用progressdialog.setCanceledOnTouchOutside
ProgressDialog是AlertDialog类的一个扩展,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条。 二、方法: setProgressStyle()设置进度条风格 setTitle() 设置ProgressDialog 标题 setMessage() 设置ProgressDialog 提示信息 setIcon () 设置ProgressDialog 标题图标 setIndeterminate()设置ProgressDialog 的进度条是否不明确 setCancelable() 设置ProgressDialog 是否可以按退回按键取消 setButton() 设置ProgressDialog 的一个Button setProgress() 设置ProgressDialog 进度条进度 show() 显示ProgressDialog p = new ProgressDialog(context); p.setIcon(R.drawable.progress); p.setTitle(title); p.setMessage(message
// 方式一:new Dialog final ProgressDialog dialog = new ProgressDialog(this); dialog.show(); // 方式二 :使用静态方式创建并显示,这种进度条只能是圆形条,设置title和Message提示内容 ProgressDialog dialog2 = ProgressDialog.show(this, "提示 boolean cancelable 设置是否进度条是可以取消的 ProgressDialog dialog4 = ProgressDialog.show(this, "提示", "正在登陆中", 的样式有两种,一种是圆形不明确状态,一种是水平进度条状态 第一种方式:圆形进度条 final ProgressDialog dialog = new ProgressDialog(this); 第二种方式:水平进度条 // 进度条还有二级进度条的那种形式,这里就不演示了 final ProgressDialog dialog = new ProgressDialog(this
使用方法: 如果只是普通进度对话框 直接调用ProgressDialog静态方法 show() 即可 创建ProgressDialog 调用方法进行具体设置 setIndeterminate(false progressDialog01,progressDialog02; private Button buttonDate; private Button buttonTime ); //设置进度条是否显示进度 progressDialog01.setIndeterminate(true); progressDialog01.show progressDialog02.setTitle("任务正在执行中"); //设置对话框执行内容 progressDialog02.setMessage progressDialog02.setIndeterminate(false); progressDialog02.show(); new Thread
已解决 问题 使用了ProgressDialog.show方法,但是运行程序的时候进度对话框不显示 原因 执行时间过久,造成了线程阻塞 解决方案 执行代码写出主线程外
2、难点 假设当前Activity在onCreate中启动一个异步线程去夹在数据,当然为了给用户一个很好的体验,会有一个ProgressDialog,当数据加载完成,ProgressDialog消失,设置数据 b)关闭ProgressDialog的代码在线程的onPostExecutez中,但是上个线程如果已经杀死,无法关闭之前ProgressDialog。 c)谷歌的官方不建议使用ProgressDialog,这里我们会使用官方推荐的DialogFragment来创建我的加载框,如果你不了解:请看 Android 官方推荐 : DialogFragment
所以,就搜索了一下资料,最后实现如下: [java] view plain copy ProgressDialog pd; /** * 等待连接滚动条 */ private void initProgDialog() { // TODO Auto-generated method stub flag=false; pd=new ProgressDialog ); pd.setMessage("请等待"); pd.setCancelable(false); pd.setProgressStyle(ProgressDialog.STYLE_SPINNER
与普通的对话框一样,进度对话框最多也只能添加3个按钮,而且可以设置进度对话框的风格: // 创建ProgressDialog类 ProgressDialog pg = new ProgressDialog progressDialog = new ProgressDialog(this); // 设置提示的title的图标,默认是没有的 progressDialog.setIcon progressDialog = new ProgressDialog(this); progressDialog.setIcon(R.drawable.flag_mark_yellow ); progressDialog.setTitle("ProgressDialog改变位置"); progressDialog.setMessage("where am ; progressDialog.getWindow().setGravity(postion); progressDialog.show(); } private
特别注意:ProgressDialog在Android API级别26中已被废弃;取而代之的是ProgressBar和自定义布局来实现进度提示和等待效果 一 ProgressDialog基本介绍 ProgressDialog 二 ProgressDialog使用方法 ProgressDialog已在Android API级别26被弃用,推荐使用ProgressBar和自定义布局来代替。 若要创建一个ProgressDialog实例,可以使用ProgressDialog类的构造函数,并设置相关属性: ProgressDialog progressDialog = new ProgressDialog progressDialog.setIcon(R.drawable.icon); // 设置对话框图标 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER show():显示ProgressDialog。 dismiss():关闭ProgressDialog。
progressDialog = new ProgressDialog(context); progressDialog.setTitle("提示"); progressDialog.setMessage progressDialog; File file; public DownloadAPK(ProgressDialog progressDialog) { file; (2)、构造方法,将外部的ProgressDialog对象传到异步任务里 public DownloadAPK(ProgressDialog progressDialog) = new ProgressDialog(context); progressDialog.setTitle("提示"); progressDialog.setMessage progressDialog.setCancelable(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL
Android中一开始对进度条的实现是通过ProgressDialog,可以弹出一个对话框,对话框里显示进度条。但是ProgressDialog在8.0以后被遗弃了,虽然也可以用,但是官方不推荐使用。 ProgressBar是一个布局,只能写在xml文件中,而ProgressDialog可以在java代码中实现。 下面先来看一下ProgressDialog的用法,我一共设置了四种dialog,最后一种就是我需要的弹出框进度条,并且是计时进度条。 ? 进度条弹出框用的是ProgressDialog,如何计时用的系统时间,最下面写了一个StartTimer函数和EndTimer函数来进行计时操作,到达规定的时间则完成进度条,如果中途退出通过ProgressDialog package com.example.hello; import android.app.AlertDialog; import android.app.ProgressDialog; import
HttpWindow::httpFinished); connect(reply, &QIODevice::readyRead, this, &HttpWindow::httpReadyRead); ProgressDialog *progressDialog = new ProgressDialog(url, this); progressDialog->setAttribute(Qt::WA_DeleteOnClose ); connect(progressDialog, &QProgressDialog::canceled, this, &HttpWindow::cancelDownload); connect (reply, &QNetworkReply::downloadProgress, progressDialog, &ProgressDialog::networkReplyProgress); connect(reply, &QNetworkReply::finished, progressDialog, &ProgressDialog::hide); ... } 0x01 下载进度
一、ProgressDialog(一行代码即可,已废弃但简单) private ProgressDialog progressDialog; private void showLoading_PD() { if (progressDialog == null) { progressDialog = new ProgressDialog(this); // this = Activity progressDialog.setMessage ("加载中…"); progressDialog.setIndeterminate(true); progressDialog.setCancelable(false); // 屏蔽返回键 progressDialog.setCanceledOnTouchOutside (false); // 屏蔽外部点击 } progressDialog.show(); } private void dismissLoading_PD() { if (progressDialog = null && progressDialog.isShowing()) { progressDialog.dismiss(); } } 二、官方推荐:自定义 Dialog(通用,不废弃) 先写个极简布局
_progressDialog; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); _loginService = new LoginService(); _progressDialog = new ProgressDialog(this) { Indeterminate = true }; _progressDialog.SetTitle ("Login In Progress"); _progressDialog.SetMessage("Please wait..."); loginSynchronously(); } (); } private void onSuccessfulLogin() { _progressDialog.Hide(); new AlertDialog.Builder(this _progressDialog; private LoginService _loginService; private Context _context; public LoginTask(
首先呢,先讲一下阿Q最先想到的ProgressDialog的用法吧,查阅Android API发现,此类在API 26中已经被弃用了。 它给出了这样的解释:ProgressDialog是一个模拟对话框,可防止用户与应用程序进行交互。您应该使用类似的进度指示器ProgressBar,而不是使用此类,可以将其嵌入到应用程序的UI中。 ProgressDialog继承自AlertDialog,而AlertDialog继承自Dialog。 ProgressDialog的使用方法有两种,一种是直接New ProgressDialog,一种是调用ProgressDialog的静态方法show。接下来就让代码说话吧。 第一种方式 final ProgressDialog pd = new ProgressDialog(MainActivity.this); //设置标题 pd.setTitle("我是加载框"); /