Android Dialog背景半透明化实现

673 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情  最近在代码优化、完善功能的过程中,意识到自己的对话框很单一,网上的app自定义Dialog都很有自己的特点,改之后实现效果如下:

image.png

也很简洁,但是比初版好很多(可以自由设置像素分辨率高宽,前篇已说),下面来简单介绍下如何实现这种半透明背景对话框: 第一步给自定的Dialog设置自定义背景的xml界面,在项目中找到res->values->styles.xml(如果没有这个.xml文件就自行创建)

image.png

具体styles.xml代码设置如下(这里只是一个示范,可以根据自己需求从而进行编写):

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="Translucent_NoTitle" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@android:color/transparent</item>  <!-- 设置window背景透明,也就是去边框 -->
        <item name="android:windowNoTitle">true</item>
    </style>

    <style name="floatingActionsMenu_fab_style">style</style>
    <style name="MyDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowIsTranslucent">true</item>
        <!--半透明背景-->
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowCloseOnTouchOutside">false</item>
        <!--false会显示出标题来-->
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>

    </style>

</resources>

最后就是在activity中引入:

super(context, R.style.MyDialog);//styles名
this.mContext = context;

今天小技巧分享就到这儿啦,是不是干货满满。如有问题,欢迎留言!