首页 > 系统 > Android > 正文

android 中ProgressDialog实现全屏效果的示例

2019-10-22 18:21:56
字体:
来源:转载
供稿:网友

做项目的时候,直接用到了一个ProgressDialog,需要实现全屏的效果,如下图所示,功能跑起来的时候发现不是全屏,只是包裹了当前的内容,如下图所示,不过查找一些资料,把问题解决了。

ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口。

ProgressDialog的创建方式有两种,一种是new Dialog ,一种是调用Dialog的静态方法Dialog.show()。

// 方式一:new Dialog final ProgressDialog dialog = new ProgressDialog(this); dialog.show(); // 方式二:使用静态方式创建并显示,这种进度条只能是圆形条,设置title和Message提示内容 ProgressDialog dialog2 = ProgressDialog.show(this, "提示", "正在登陆中"); // 方式三 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数boolean indeterminate设置是否是不明确的状态 ProgressDialog dialog3 = ProgressDialog.show(this, "提示", "正在登陆中", false); // 方式四 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数boolean cancelable 设置是否进度条是可以取消的 ProgressDialog dialog4 = ProgressDialog.show(this, "提示", "正在登陆中", false, true); // 方式五 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数 DialogInterface.OnCancelListener // cancelListener用于监听进度条被取消 ProgressDialog dialog5 = ProgressDialog.show(this, "提示", "正在登陆中", true, true, cancelListener); 

方式五中需要一个cancelListener,代码如下:

private OnCancelListener cancelListener = new OnCancelListener() {  @Override  public void onCancel(DialogInterface dialog) {    // TODO Auto-generated method stub    Toast.makeText(MainActivity.this, "进度条被取消", Toast.LENGTH_LONG).show();  }};

本文的知识点:

1、实现ProgressDialog的全屏效果

2、接口回调推荐的方式

android,ProgressDialog全屏,ProgressDialog实现全屏,ProgressDialog

项目要求实现的效果.png

android,ProgressDialog全屏,ProgressDialog实现全屏,ProgressDialog

刚开始实现的效果.png

代码实现:

1、布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android/191911.html">android/57924.html">android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <com.tecsun.tsb.network.tool.AnimImageViewLoader  android:id="@+id/iv_load_anim"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:background="@drawable/anim_all_load"/> <TextView  android:id="@+id/tv_all_load"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="@string/tip_load_pay_wait_result"  android:textSize="26sp"  android:textColor="@color/c_white"  android:layout_marginTop="20dp"/> <TextView  android:id="@+id/tv_all_load_other"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="@string/tip_load_pay_wait_tip"  android:textSize="26sp"  android:textColor="@color/c_orange_1"  android:layout_marginTop="20dp"/> <Button  android:id="@+id/btn_cancel"  android:layout_height="75dp"  android:layout_width="600dp"  android:layout_marginTop="20dp"  android:text="取消查询"  android:background="@drawable/btn_white_gray7_selector"  android:textColor="#000000"  android:textSize="30sp" /></LinearLayout>

2、核心代码

 Window window = getWindow();  WindowManager.LayoutParams layoutParams = window.getAttributes();  layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;  layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;  layoutParams.gravity = gravity;  window.setAttributes(layoutParams);

3、接口回调的实现方式

 public OnClickCancelListener mOnClickCancelListener; public void setOnClickCancelListener(OnClickCancelListener onClickCancelListener){  this.mOnClickCancelListener = onClickCancelListener; } public interface OnClickCancelListener{  void singleClick(); }

4、接口回调的调用方式

mLoadingProgressDialog.setOnClickCancelListener(new LoadingProgressDialog.OnClickCancelListener() {   @Override   public void singleClick() {    LogUtil.d(TAG,"点击取消查询===========");    isContinueQuery = true;    dismissPayResultLoadingDialog();   }  });

5、全部代码实现

public class LoadingProgressDialog extends ProgressDialog { private static final String TAG = LoadingProgressDialog.class.getSimpleName(); public LoadingProgressDialog(Context context) {  super(context,R.style.style_custon_dialog);  setCancelable(false);  setCanceledOnTouchOutside(false); } @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.custom_dialog_all_loading);  Window window = getWindow();  WindowManager.LayoutParams layoutParams = window.getAttributes();  layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;  layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;  layoutParams.gravity = gravity;  window.setAttributes(layoutParams);  Button benCancel = (Button) findViewById(R.id.btn_cancel);  benCancel.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View v) {    LogUtil.d(TAG,"benCancel================");    mOnClickCancelListener.singleClick();   }  }); } public OnClickCancelListener mOnClickCancelListener; public void setOnClickCancelListener(OnClickCancelListener onClickCancelListener){  this.mOnClickCancelListener = onClickCancelListener; } public interface OnClickCancelListener{  void singleClick(); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表