经典效果组件篇2——实现Activity的透明效果

来源:互联网 发布:五毛钱特效制作软件 编辑:程序博客网 时间:2024/05/29 04:43

要实现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

0 0
原创粉丝点击