记录一下,以备后用!
项目从eclipse转到android studio 中后ProgressDialog背景图变成黑色,无奈只能自定义。
核心方法:
public static Dialog dialogProgress(Activity activity,String text,boolean aBoolean)
{
Dialog dialog = new Dialog(activity, R.style.LodingDialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = LayoutInflater.from(activity).inflate(R.layout.dialog, null);
dialog.setContentView(view);
TextView dialogText = (TextView) view.findViewById(R.id.dialogText);
dialogText.setText(text);//设置显示文字
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CLIP_VERTICAL);
lp.width = (int) (activity.getWindowManager().getDefaultDisplay().getWidth() * 0.5); // 宽度设置为屏幕的0.65
lp.height = (int) (activity.getWindowManager().getDefaultDisplay().getHeight() * 0.08); // 高度设置为屏幕的0.08
lp.alpha = 0.7f; // 透明度
// 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
dialogWindow.setAttributes(lp);
dialog.setCancelable(aBoolean); //设置ProgressDialog (true/false)是/否可以按退回按键取消
dialog.show();
return dialog;
}
xml文件(R.layout.dialog):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:orientation="horizontal">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="5dp"
android:padding="10dp"
/>
<TextView
android:id="@+id/dialogText"
style="@style/textNormal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:text="正在提交..."
android:textColor="@color/black"/>
</LinearLayout>
style文件(R.style.LodingDialog):
<style name="LodingDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/white</item>
</style>