Android 自定义ProgressDialog

来源:互联网 发布:飞升阵法数据 编辑:程序博客网 时间:2024/06/05 20:46

Android系统自带的Dialog实在是难看得可怕..项目参数没有下来,实在闲着无聊,重写个ProgressDialog

首先前期准备,先弄个Progress进度圈的Anim

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"      android:drawable="@drawable/publicloading"      android:fromDegrees="0"      android:pivotX="50.0%"      android:pivotY="50.0%"      android:toDegrees="360" /> 
进度圈的图片


然后我们再定制样式

       <!-- 自定义loading dialog  wrz-->             <style name="CustomDialog" parent="@android:style/Theme.Dialog">              <item name="android:windowFrame">@null</item>              <item name="android:windowIsFloating">true</item>              <item name="android:windowContentOverlay">@null</item>              <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>              <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>          </style>  <style name="CustomProgressDialog" parent="@style/CustomDialog">              <item name="android:windowBackground">@drawable/loading_bg</item>              <item name="android:windowNoTitle">true</item>          </style>  

xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:id="@+id/dialog_view"       android:orientation="vertical"      android:layout_width="fill_parent"       android:layout_height="fill_parent"      android:minHeight="60dp"      android:minWidth="180dp"      android:gravity="center"      android:padding="10dp"      >     <ProgressBar          android:id="@+id/loadingImageView"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_marginTop="10dp"        android:layout_gravity="center_horizontal"        android:indeterminateDrawable="@anim/loading_animation" />       <TextView          android:id="@+id/id_tv_loadingmsg"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_gravity="center_horizontal"          android:layout_marginTop="5dp"        android:textColor="@android:color/tertiary_text_light"          android:textSize="18dp"        android:text="数据载入中.." />  </LinearLayout>


代码如下,继承Dialog


import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.widget.TextView;/** * 自定义progressDialog * @author wrz * @time 2016.5.16 */public class CustomProgressDialog extends Dialog {      public CustomProgressDialog(Context context, String strMessage) {          this(context, R.style.CustomProgressDialog, strMessage);      }        public CustomProgressDialog(Context context, int theme, String strMessage) {          super(context, theme);          this.setContentView(R.layout.loading_dialog);          this.getWindow().getAttributes().gravity = Gravity.CENTER;          TextView tvMsg = (TextView) this.findViewById(R.id.id_tv_loadingmsg);          if (tvMsg != null) {              tvMsg.setText(strMessage);          }      }        @Override      public void onWindowFocusChanged(boolean hasFocus) {            if (!hasFocus) {              dismiss();          }      }  }


代码运用

Dialog mDlgProgress= new CustomProgressDialog(context,message);mDlgProgress.show();


好了,搞定。

0 0