1、创建自定义的弹出框控件
public class UIHelper {
public Dialog mLoadDialog;
private int count;
public void showLoadDialog(Context context) {
showLoadDialog(context, null);
}
public void showLoadDialog(Context context, String msg) {
if (context == null) {
return;
}
if (context.isRestricted())
if (mLoadDialog != null && mLoadDialog.isShowing())
return;
count++;
if (count > 1) {
count = 0;
return;
}
View login_dialog = View.inflate(context, R.layout.load_doag, null);
mLoadDialog = new Dialog(context, R.style.dialog_with_alpha);
mLoadDialog.setCanceledOnTouchOutside(false);
if (!TextUtils.isEmpty(msg)) {
TextView messageTV = (TextView) login_dialog
.findViewById(R.id.login_doag_name);
messageTV.setText(msg);
}
mLoadDialog.setContentView(login_dialog);
try {
mLoadDialog.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public void cloesLoadDialog() {
try {
if (mLoadDialog != null && mLoadDialog.isShowing()) {
mLoadDialog.dismiss();
count = 0;
mLoadDialog = null;
}
} catch (Exception e) {
}
}
}
2、创建自定义布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000" >
<RelativeLayout
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_centerInParent="true"
android:background="@drawable/loading_bg" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="@style/loading_large"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/login_doag_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="正在加载……"
android:textColor="#fff" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
3、创建半透明的弹出框背景样式
<!-- 弹出框样式 -->
<style name="dialog_with_alpha" parent="android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<!-- 无标题 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 背景透明 -->
<!-- <item name="android:backgroundDimEnabled">false</item> -->
<!-- 模糊 -->
</style>
4、使用方式
UIHelper uiHelper = new UIHelper();
if(msg.equals("")){
uiHelper.showLoadDialog(mActivity, mActivity.getString(R.string.loading));
}else{
uiHelper.showLoadDialog(mActivity, msg);
}
备注:个人备忘录!