Android设置Activity背景为透明style的方法

Android设置Activity背景为透明style的方法,第1张

1.设置Theme.Translucent

只需要在Manifest中需要透明的Activity内设置theme为以上任意一个就可以了

2.在Activity的layout.xml文件中,设置父布局背景透明度(不设置背景色默认全透明),不设置透明度看不出效果,如果子控件设置了背景色且不透明,则子控件所占位置无透明效果。

3.效果图

1.使用自定义的Theme

2.在res-values-styles.xml中添加MyTransparent

3.在res-values-colors.xml中添加透明颜色值

4.以上步骤设置完成和方法一有同样的效果,省去了在layout.xml设置透明背景色(如果在布局中页设置了背景色,将以布局中的为准)。方法二相对灵活一点,可以多设置一些属性,如模糊背景:

刘海屏幕

对于华为20pro,在设置-->显示-->更多显示设置-->选择 默认(为应用自动匹配顶部显示,尽可能地利用屏幕空间,使内容不被遮挡)

或者选择 隐藏顶部区域(屏幕顶部始终不作为显示区域,会导致竖屏进入刘海区域,横屏不进入刘海区域)

activity隐藏底部虚拟导航(比如华为):

在onResume和onWindowFocusChanged中写入:

dialog:d窗,在有底部虚拟导航按钮(在全屏模式中,比如华为:闪烁问题)。

处理办法重写dialog的show方法:

如果只设置

会发现在刘海屏手机上有一段灰白色区域(action_model_bar-stub:ViewStubComat)位置, xml自己的布局会往下挤一段距离高度。

如果设置上了则该位置为(0,0,0,0),实现了真正意义上的全屏。

为何取名为透明?好奇怪,它的确有实际高度,设置为true了就无实际高度。

1、前提条件:

(1)设置Activity的主题为透明主题

(2)d出对话框

2、问题:按Back键时,会闪烁

3、原因分析:

(1)Activity设置成了透明主题,没有了正常的退出动画

(2)Dialog依赖于Activity所在的父窗口,Activity透明不再做退出动画,而Dialog需要做退出动画,造成了闪烁。

4、解决方案:

提升Dialog的窗口层级,设置为系统级别的悬浮窗。

需要加入权限

参考博客:

http://blog.csdn.net/tscyds/article/details/51340463


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11267624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存