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();
好了,搞定。