android之修改系统自带ProgressDialog样式

来源:互联网 发布:淘宝游戏店铺转让 编辑:程序博客网 时间:2024/05/27 06:54

1.ProgressDialog默认样式是当前Activity的theme所定义的ProgressDialog样式。

  继承自父类AlertDialog的style.

AlertDialog的源码

[java] view plain copy
  1. static int resolveDialogTheme(Context context, int resid) {  
  2.    if (resid == THEME_TRADITIONAL) {  
  3.        return com.android.internal.R.style.Theme_Dialog_Alert;  
  4.    } else if (resid == THEME_HOLO_DARK) {  
  5.        return com.android.internal.R.style.Theme_Holo_Dialog_Alert;  
  6.    } else if (resid == THEME_HOLO_LIGHT) {  
  7.        return com.android.internal.R.style.Theme_Holo_Light_Dialog_Alert;  
  8.    } else if (resid == THEME_DEVICE_DEFAULT_DARK) {  
  9.        return com.android.internal.R.style.Theme_DeviceDefault_Dialog_Alert;  
  10.    } else if (resid == THEME_DEVICE_DEFAULT_LIGHT) {  
  11.        return com.android.internal.R.style.Theme_DeviceDefault_Light_Dialog_Alert;  
  12.    } else if (resid >= 0x01000000) {   // start of real resource IDs.  
  13.        return resid;  
  14.    } else {  
  15.        TypedValue outValue = new TypedValue();  
  16.        context.getTheme().resolveAttribute(com.android.internal.R.attr.alertDialogTheme,  
  17.                outValue, true);  
  18.        return outValue.resourceId;  
  19.    }  

         2.引用系统的样式,引用不到com.android.internal.R.style.Theme_Holo_Dialog_Alert,而是通过ProgressDialog.THEME_HOLO_LIGHT来引用系统自定义ProgressDialog样式。

ProgressDialog dialog = new ProgressDialog(this, ProgressDialog.THEME_HOLO_LIGHT);
dialog.setTitle("登录");
dialog.setMessage("正在登录,请稍后...");
// dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(true);
dialog.show();


       3.引用自定义ProgressDialog样式

转自http://www.2cto.com/kf/201309/241455.html

转自http://blog.csdn.net/rohsuton/article/details/7518031

转自http://blog.csdn.net/luhuajcdd/article/details/8986212

        转自http://blog.csdn.net/qjlhlh/article/details/7979179