经典效果组件篇2——实现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);
这样就是上图的最终效果了。

下面附上最终的工程的代码

工程Demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值