Android 设置Activity透明

  一直在应用程序中使用的Activity都是黑色不透明的背景,很少遇到那些花哨的Activity,但是花哨归花哨,有些Activity一定要实现半透或者全透效果,比如我的一张动态壁纸的设置界面,这张设置界面是一张Activity页面,我在设置界面进行壁纸设置的时候,我希望看到我的壁纸已经作出相应的改变,为此就需要实现Activity的半透或者全透的效果了,那么如何在Android中实现Activity半透明效果或者全透明效果?

Activity实现全透明效果

        Activity实现全透明效果方法,我们可以从sdk的帮助文章中找到方法,系统已经给我们做好了全透效果的style,所以我们只需在AndroidManifest.xml中声明该Activity时,添加上红色代码设置即可:

XML/HTML代码
<activity android:name="org.ourunix.android.FreneticActivity"
	android:icon="@drawable/small_pic.png"
	android:label="@string/freneticLabel"
	android:style="@android:style/Theme.Translucent" >
</activity>

Activity实现半透明效果

        如果我们要实现半透效果又该怎么办呢?那就需要我们自己写style了,但是这个style很简单,我们只需继承上面全透的系统style,然后加上背景色即可,步骤如下。

  1、先在res/values下建colors.xml文件,写入:

XML/HTML代码
<?xml version = "1.0" encoding = "UTF-8" ?>
<resources>
        <color name = "transparent">#50000000</color>
</resources>

  注意:color.xml的#5000000前两位是透明的效果参数从00--99(透明--不怎么透明),后6位是颜色的设置

        2、这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。再在res/values/下建styles.xml,设置程序的style:

XML/HTML代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="Transparent">
                <item name="android:windowBackground">@color/transparent</item>
                <item name="android:windowIsTranslucent">true</item>
                <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>
        </style>
</resources>

  

        3、最后一步,把这个styles.xml用在相应的Activity上。即在AndroidManifest.xml中的任意<activity>标签中添加,同上。

XML/HTML代码
<activity android:name="org.ourunix.android.FreneticActivity"
	android:icon="@drawable/small_pic.png"
	android:label="@string/freneticLabel"
	android:theme="@style/Transparent>
</activity>

  

        附加:如果想设置所有的activity都使用这个风格,可以把这句标签语句添加在<application>中,最后运行程序,是不是发现整个界面都被蒙上一层半透明了。最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下的所有东西可以却都操作无效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中实现透明Activity的点击穿透,可以通过以下步骤进行操作: 1. 在Manifest文件中声明透明Activity: ```xml <activity android:name=".TransparentActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"> </activity> ``` 2. 创建TransparentActivity类并继承自Activity,并在onCreate方法中设置Activity透明属性: ```java public class TransparentActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置Activity透明 getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); getWindow().setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH); // 设置布局等其他操作 setContentView(R.layout.activity_transparent); } } ``` 3. 在TransparentActivity的布局文件中,可以添加其他View元素,以便显示其他内容。 ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a transparent activity" android:textSize="24sp" android:layout_centerInParent="true"/> <!--其他View元素--> </RelativeLayout> ``` 通过以上步骤,我们可以创建一个透明Activity,并且该Activity不会拦截点击事件,点击事件会传递到下方的View,从而实现了透明Activity的点击穿透效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值