要使用窗口式的activity,大概有以下几步:
显示窗口式activity
- 当然是新建一个activity,然后在AndroidManifest.xml中注册,将activity的android:theme属性设置为android:theme=”@style/Dialog”.
这样就生成了一个窗口式的activity,但是这个activity的大小会随着布局文件的变化而变化。
固定窗口大小
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); //为获取屏幕宽、高
WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值
p.height = (int) (d.getHeight() * 0.5); //高度设置为屏幕的0.5
p.width = (int) (d.getWidth() * 0.8); //宽度设置为屏幕的0.8
p.alpha = 1.0f; //设置本身透明度
p.dimAmount = 0.5f; //设置黑暗度
getWindow().setAttributes(p);
这样设置后,窗口的大小就固定了。
自定义窗口样式
在drawable中建立一个xml文件dialog_activity_style.xml
<corners android:radius="2dp"/>
<solid android:color="#dddddd"/>//设置边角弧度
<stroke
android:color="@color/red_dark"//设置边框颜色
android:width="2dp"/>//设置边框宽度
再在styles.xml文件中添加
<!--定义自己的style,继承Dialog-->
<style name="dialogActivity" parent="Dialog">
<!--添加自己定义的样式-->
<item name="android:windowBackground">@drawable/dialog_activity_style</item>
<!--设置动画,在这里使用让它继承系统的Animation.Dialog-->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
</style>
然后记得在AndroidManifest.xml中修改android:theme属性
android:theme=”@style/dialogActivity”.