Activity 设置为 dialog 显示在底部并宽满屏

activity注册设置style 

<activity
    android:name=".home.currenttask.state.StateActivity"
    android:theme="@style/DialogTheme" />
<activity
<style name="DialogTheme">
    <item name="android:windowBackground">@android:color/transparent</item> <!--设置dialog的背景,此处为系统给定的透明值-->
    <item name="android:windowFrame">@null</item>                <!--Dialog的windowFrame框为无-->
    <item name="android:windowNoTitle">true</item>         <!--是否显示标题-->
    <item name="android:windowIsFloating">true</item>            <!--是否浮现在activity之上-->
    <item name="android:windowIsTranslucent">true</item>         <!--是否半透明-->
    <item name="android:windowContentOverlay">@null</item>       <!--是否有覆盖-->
    <item name="android:backgroundDimEnabled">true</item>
</style>

activity 中设置样式

public void windowColor() {
    Window window = getWindow();
    //取消设置Window半透明的Flag
    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    //添加Flag把状态栏设为可绘制模式
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    //设置状态栏为透明/或者需要的颜色
    window.setStatusBarColor(getResources().getColor(R.color.color_4c686969));

    getWindow().setGravity(Gravity.BOTTOM);//设置显示在底部 默认在中间
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.width =WindowManager.LayoutParams.MATCH_PARENT;//设置宽度满屏
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    getWindow().setAttributes(lp);
    setFinishOnTouchOutside(true);//允许点击空白处关闭
}

个人开发笔记。

猜你喜欢

转载自blog.csdn.net/qq_36355271/article/details/101600552