一、创建圆角图片(作为对话框的背景)
1.创建drawable文件(若没有该文件),在其下创建Android的xml文件(名称progress_bg.xml)
2.直接上代码
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#FFFFFF" />
<!-- 设置按钮的四个角为弧形, 并设置弧形的半径 -->
<corners android:radius="5dp" />
<!-- padding:Button里面的文字与Button边界的间隔 -->
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"
/>
<!-- 设置边框宽度和颜色 -->
<stroke android:width="10dp"
android:color="@color/black"/>
</shape>
二、为对话框创建样式
在values文件夹下的styles.xml中插入代码:(不清楚样式的含义可以参考http://blog.csdn.net/dyllove98/article/details/8841602)
<!-- 《等待进度》对话框样式 -->
<style name="myDialog" parent="@android:style/Theme.Dialog">
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 没有标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 模糊 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 对话框是否有遮盖 -->
<item name="android:windowContentOverlay">@null</item>
</style>
三、创建自定义等待对话框
1.dialog的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp" >
<LinearLayout
android:id="@+id/body"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/progress_bg"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="20dp"
android:paddingTop="20dp" >
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:minWidth="180dip"
android:paddingLeft="10dp"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
2.java代码
<pre class="java" name="code">private Dialog createProgressDialog(String message){
//创建对话框(为对话框设置样式)
Dialog mDialog = new Dialog(this, R.style.myDialog);
//指定对话框的布局
View view = LayoutInflater.from(this).inflate(R.layout.progress_dialog, null, false);
//为对话框中的控件填充内容(如文字)
TextView tvMessage = (TextView) view.findViewById(R.id.message);
tvMessage.setText(message);
//为对话框设置布局
mDialog.setContentView(view);
//设置触屏不会取消
mDialog.setCanceledOnTouchOutside(false);
return mDialog;
}
四、显示、关闭等待对话框
//显示自定义等待对话框
private void showDialog(String message){
//若不存在,则创建
if (mDialog == null) {
mDialog = createProgressDialog(message);
}
//若没有正在显示,则显示
if (!mDialog.isShowing()) {
mDialog.show();
}
}
//关闭自定义等待对话框
private void closeDialog(){
//若存在,且正在显示中,则关闭
if (mDialog!=null && mDialog.isShowing()) {
mDialog.dismiss();
}
//释放内存
mDialog = null;
}