开发中使用到dialog时,我个人是比较厌烦黑黑的系统dialog框的,抽时间就记录下我平时使用的dialog。
一.实现dialog样式的activity,只需如下两步:
1.定义dialog style
在values/styles文件中定义style:
<style name="dialog_style" parent="@android:style/Theme.Translucent">
<!-- Dialog的windowFrame框为无 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否半透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 是否显示title -->
<item name="android:windowNoTitle">true</item>
<!-- 设置dialog的背景 -->
<item name="android:windowBackground">@drawable/bg</item>
<!-- 背景是否模糊显示 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
2.在manifest中声明activity时,将activity的theme设置为上面的style:
<activity android:name="com.yp.dialog.DialogActivity"
android:theme="@style/dialog_style"></activity>
这样就实现了activity的dialog样式。
二. 实现dialog的可定义大小
1.首先new 一个Dialog对象,style可使用上面style,这里大家可自定义layout。
Dialog dialog = new Dialog(activity,R.style.dialog_style);
dialog.setContentView(view);
dialog.show();
2.接下来.去实现dialog的大小设置:
Window win = dialog.getWindow();
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = 800;
lp.dimAmount = 0.2f;
win.setAttributes(lp);
如上代码中,可以设置dialog的宽和高,也可以设置透明度等等。