实现Activity的透明效果

本文转载自三千世界–只挥一刃
要实现Activity的透明效果,发现有两种实现方法:
其一,直接在相应的xml中进行一下配置即可。

其二,是通过代码进行设置。相对于第一种来说,复杂许多,但是效果也比较自由。

首先,来试一下通过配置得到的效果。
配置是通过安卓的样式来实现的,具体的做法是在AndroidManifest.xml找到要实现透明的Activity,在想要实现透明的activity中添加如下的代码:

            android:theme="@android:style/Theme.Translucent"

只这一句就完成了。下面是我工程的截图。
这里写图片描述

这样打开应用可以直接看到手机桌面的应用图标,但是却无法点击。因为这是在你的Activity中,就算透明了,依旧是存在的,可以通过上面的标题栏确定你是否还在你的应用界面中,还有一个缺点就是透明度必须是100%,无法设置透明度。

第二种:

先上效果图:
这里写图片描述
如何实现。

第一步,先自定义我们的style文件。

在res/values文件夹下,新建一个style.xml文件,写入下面的代码

    <?xml version="1.0" encoding="utf-8"?>  
    <resources>  
      <style name="translucent">    
        <item name="android:windowBackground">@color/translucent_background</item>    
        <item name="android:windowIsTranslucent">true</item>    
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>    
      </style>  
    </resources>  

再在该文件夹下面新建一个color.xml文件,写入下面的代码

    <?xml version="1.0" encoding="utf-8"?>  
    <resources>  
    <color name="translucent_background">#90000000</color>   
    </resources>  

这里需要解释一下,这里的color参数,是两位数一个单位,前两位数是透明度,后面每两位一对是16进制颜色数字,这里的示例是白色的。

第二步,在AndroidManifest.xml找到要实现透明的Activity,在想要实现透明的activity中添加如下的代码:

    android:theme="@style/translucent"  

或者也可以在相应界面的oncreate()方法中添加如下的代码:

    setTheme(R.style.translucent);  

这个时候就可以实现Activity的透明了。包括标题栏也是一起透明的,很和谐。

但是,按钮的颜色还是很深,其实就是没一起透明。怎么办?

同样在oncreate()方法里面设置一下就行

    Window window=getWindow();  
    WindowManager.LayoutParams wl = window.getAttributes();  
    wl.flags=WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;  
    wl.alpha=0.6f;//这句就是设置窗口里控件的透明度的.0.0全透明.1.0不透明.  
    window.setAttributes(wl);  

这样就是上图的最终效果了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值