工程目录:src\ch09\ch09_translucence_window
Android应用程序默认的窗口颜色是黑色的,而且不透明。为了使程序的界面更绚丽,可以更换Activity的背景。如果背景图是半透明的,那么就可以很容易实现半透明的Activity。广州网站建设
在实现半透明Activity之前,需要用Photoshop或其他图像处理软件做一个半透明的png图(透明度可根据需要设置)。由于作为背景时需要对png图像进行拉伸,因此,需要将png图转换成9.png格式的图像(关于9.png格式图像的细节详见5.2.5小节的内容)。通过9.png图像可以确定图像的哪些部分可以拉伸,哪些部分不可以拉伸。然后在res\values目录中创建一个xml主题文件(为了方便,本例就直接将主题放在strings.xml文件中了),并编写如下的主题。
广州网站建设
- <style name="MyTheme" parent="@android:style/Theme.Dialog">
- <item name="android:windowBackground">@drawable/msg_background</item>
- </style>
上面的代码覆盖了系统的Theme.Dialog主题(该主题可以将Activity变成一个类似对话框的窗口),并覆盖了android:windowBackground属性,将该属性值设为刚才建立的半透明图像的ID。现在修改AndroidManifest.xml文件中的定义,代码如下:
广州网站设计
- <activity android:name=".Main" android:label="@string/app_name" android:theme="@style/ MyTheme">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
在<activity>标签中通过android:theme属性指定了刚才建立的主题,最后可根据需要设置布局文件中顶层标签(本例中是<LinearLayout>)的宽度和高度。现在来运行程序,会看到如图9.13所示的效果。广州网站设计
![]() |
| 图9.13 半透明窗口 |




