美文网首页安卓开发
Android中自定义全屏透明Dialog实践

Android中自定义全屏透明Dialog实践

作者: 人海中一只羊 | 来源:发表于2017-04-06 01:03 被阅读1073次

项目中要实现一个透明的全屏自定义Dialog,类似与下图中进度条的背景效果.

transparentPicture.jpg

在网上找了一些方法,现在总结下实现这种效果的最简单方法:

实现透明效果

要点一: 设置 windowBackground
 <item name="android:windowBackground">@android:color/transparent</item>

实现dialog透明效果最关键的方法就是在自定义style中定义 windowBackgroundtransparent . 在自定义布局中设置布局的 background 或者 在style中 定义其他item都 起不到 使window透明的效果.

要点二: Dialog的style继承的parent
Theme.DeviceDefault.Dialog

style继承某些父样式会覆盖掉透明背景的效果,经过我自己的测试,继承上面这种样式可以保证透明效果正常出现,继承其它一些样式会出现黑色的不透明背景.

使Window全屏

Window mWindow = mDialog.getWindow();
WindowManager.LayoutParams params = mWindow.getAtrribute();
params.width = LayoutParams.MATCH_PARENT;
params.height=LayoutParams.MATCH_PARENT;
mWindow.setAttributes(params);

设置dialog全屏较为简单,直接获取到dialog的window对象,并将window对象的layoutParams的宽度和高度均设置为 match_parent 即可.

  • 很简单的效果,用到的原理也很简单,总结下来方便下次使用的时候进行查找.

相关文章

网友评论

    本文标题:Android中自定义全屏透明Dialog实践

    本文链接:https://www.haomeiwen.com/subject/iurfattx.html