去除自定义Dialog的白色背景:
mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
这句话就可以了,一定要记得 在show()前加;
下面附上完整代码:
public class MyProgressDialog {
private static Dialog mDialog;
public static void progressDialog(Context mContext) {
if (null == mDialog || !mDialog.isShowing()) {
OnKeyListener keyListener = new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_DOWN) {
mDialog.dismiss();
}
return false;
}
};
mDialog = new AlertDialog.Builder(mContext).create();
//去除dialog背景白色
mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
//监听返回
mDialog.setOnKeyListener(keyListener);
//false:dialog弹出后会点击屏幕或物理返回键,dialog不消失
mDialog.setCancelable(true);
//false:dialog弹出后会点击屏幕,dialog不消失;点击物理返回键dialog消失
mDialog.setCanceledOnTouchOutside(true);
mDialog.show();
mDialog.setContentView(R.layout.loading_process_dialog_icon);
}
}
public static void cancleProgress() {
if (null != mDialog && mDialog.isShowing()) {
mDialog.dismiss();
}
}
}
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="horizontal"
android:background="#00000000"
android:padding="10dip" >
<ProgressBar
android:id="@+id/loading_process_dialog_progressBar"
android:layout_width="@dimen/DIMEN_45DP"
android:layout_height="@dimen/DIMEN_45DP"
android:indeterminate="false"
android:layout_centerInParent="true"
android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />
<TextView
android:id="@+id/loading_process_dialog_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="10dip"
android:layout_below="@+id/loading_process_dialog_progressBar"/>
</RelativeLayout>
资源文件 dialog_style_xml_icon:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<rotate
android:drawable="@drawable/new_progress_icon"
android:fromDegrees="0.0"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:toDegrees="360.0" />
<set android:interpolator="@android:anim/linear_interpolator" >
</set>
</item>
</layer-list>
图片资源
调起加载框:
MyProgressDialog.progressDialog(this);
加载框消失:
MyProgressDialog.cancleProgress();
效果图如下:
扫描二维码关注公众号,回复:
3998779 查看本文章