重写show方法,根据屏幕的宽高设置Dialog的大小。
public void show() {
super.show();
DisplayMetrics d = new DisplayMetrics();
getWindow().getWindowManager().getDefaultDisplay().getMetrics(d);
android.view.WindowManager.LayoutParams p = this.getWindow().getAttributes();
p.gravity = Gravity.CENTER;
p.height = (int) (d.heightPixels * 0.45);
p.width = (int) (d.widthPixels * 0.5);
this.getWindow().setAttributes(p);
}
Dialog透明主题
<style name="transparent_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:backgroundDimAmount">0</item>
</style>