zoukankan      html  css  js  c++  java
  • Android中实现Activity的透明背景效果

    实现方式一(使用系统透明样式)

    通过配置 Activity 的样式来实现,在 AndroidManifest.xml 找到要实现透明效果的 Activity,在 Activity 的配置中添加如下的代码设置该 Activity 为透明样式,但这种实现方式只能实现纯透明的样式,无法调整透明度,所以这种实现方式有一定的局限性,但这种方式实现简单。

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

      

     <activity
            android:name="cn.sunzn.transact.MainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
        
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    

      

    实现方式二(使用自定义透明样式)

    这种方式的实现同样要配置 Activity 的样式,只不过这里的样式是我们自定义的。具体实现过程如下:

    1 在 res/values/color.xml 文件下加入一个透明颜色值,这里的 color 参数,是两位数一个单位,前两位数是透明度,后面每两位一对是16进制颜色数字,示例中为白色。

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

      2 在 res/values/styles.xml 文件中加入一个自定义样式,代码如下。

    <!-- item name="android:windowBackground"         设置背景透明度及其颜色值 -->
    <!-- item name="android:windowIsTranslucent"      设置当前Activity是否透明-->
    <!-- item name="android:windowAnimationStyle"     设置当前Activity进出方式-->
    <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>
    

     3 在 AndroidManifest.xml 找到要实现透明的 Activity,在想要实现透明的 Activity 中配置其属性,代码如下;也可在该 Activity 的 onCreat() 方法中调用 setTheme(R.style.translucent) 来实现。

    <activity
        android:name="cn.sunzn.transact.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/translucent" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    

      最后你的Activity 需要继承Activity,不然报

    Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

    的错误

    参考于:https://www.cnblogs.com/sunzn/p/3584003.html

  • 相关阅读:
    [转]VC++下使用ADO操作数据库
    VC++ GetSafeHwnd()和GetSafeHandle()
    VC++ GetSafeHwnd用法
    C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
    VC++ Debug条件断点使用
    VC++为你的程序增加内存泄露检测
    VC++ Debug格式化数值显示
    VC++Debug查看堆对象内容,即使符号已经超出作用范围
    VC++ Debug产生异常时中断程序执行Break on Exception
    一个简单的伪随机数发生算法
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/11057170.html
Copyright © 2011-2022 走看看