Android有趣的全透明效果--Activity及Dialog的全透明(转载)

时间:2022-11-16 07:12:56


1.Activity全透明

同学zzm给了这个有趣的代码,现在公布出来。

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

 

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>
  2. < resources >
  3. < color   name = "transparent" > #9000 </ color >
  4. </ resources >  

这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。

再在res/values/下建styles.xml,设置程序的风格

 

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <style name="Transparent">
  4.         <item name="android:windowBackground">@color/transparent</item>
  5.         <item name="android:windowIsTranslucent">true</item>   
  6.         <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>
  7.     </style>
  8. </resources>

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

 

  1. android:theme = "@style/transparent"

如果想设置所有的activity都使用这个风格,可以把这句标签语句添加在<application>中。

最后运行程序,哈哈,是不是发现整个界面都被蒙上一层半透明了。最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下 的所有东西可以却都操作无效。呵呵....

 

2.Dialog全透明

1.准备保留边框的全透明素材如下图:

2.在values中新建一styles.xml文件,内容如下:

 

  • <?xml version="1.0" encoding="UTF-8"?>
    <resources>
        <style name="TANCStyle" parent="@android:style/Theme.Dialog">
            <!-- 更换背景图片实现全透明 -->
            <item name="android:windowBackground">@drawable/panel_background_sodino1</item>
            <!-- 屏幕背景不变暗 -->
            <item name="android:backgroundDimEnabled">false</item>
            <!-- 更改对话框标题栏 -->
            <item name="android:windowTitleStyle">@style/TitleStyle</item>
        </style>
        <style name="TitleStyle" parent="@android:style/DialogWindowTitle">
            <item name="android:textAppearance">@style/TitleText</item>
        </style>
        <style name="TitleText" parent="@android:style/TextAppearance.DialogWindowTitle">
            <!-- 设置Dialog标题栏文字颜色。 -->
            <item name="android:textColor">#000</item>
        </style>
    </resources>