实现圆角对话框样式的Activity

转载自:https://blog.****.net/guxiao1201/article/details/41517567

期项目需求实现一个对话框形式的Activity,并且有两个附加需求:

1)默认竖屏模式下宽和高都为屏幕宽度的4/5;

2)实现黑色边框和圆角效果;

下图是最终实现。

实现圆角对话框样式的Activity

实现的大致思路为:

设置Activity的Theme继承“Theme.AppCompat.Dialog”以实现最基本的对话框样式;
在Activity的onAttachedToWindow()回调生命周期函数中计算并设置Activity的高度和宽度;
使用<shap>实现圆角和边框,然后设置成窗体背景;
在实现过程中总结了以下几个问题,后面几篇博客将会逐一分析。

onAttachedToWindow()在整个Activity生命周期的位置;
decorView和window之间的层级及关系;
如何设置窗口圆角及边框;