0 Comments

自定义半透明窗口

发布于:2012-11-22  |   作者:广州网站建设  |   已聚集:人围观
自定义半透明窗口

工程目录: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文件中了),并编写如下的主题。

广州网站建设
  1. <style name="MyTheme" parent="@android:style/Theme.Dialog"> 
  2.     <item name="android:windowBackground">@drawable/msg_background</item> 
  3. </style> 

上面的代码覆盖了系统的Theme.Dialog主题(该主题可以将Activity变成一个类似对话框的窗口),并覆盖了android:windowBackground属性,将该属性值设为刚才建立的半透明图像的ID。现在修改AndroidManifest.xml文件中的定义,代码如下:

广州网站设计
  1. <activity android:name=".Main" android:label="@string/app_name"  android:theme="@style/ MyTheme"> 
  2.     <intent-filter> 
  3.         <action android:name="android.intent.action.MAIN" /> 
  4.         <category android:name="android.intent.category.LAUNCHER" /> 
  5.     </intent-filter> 
  6. </activity> 

在<activity>标签中通过android:theme属性指定了刚才建立的主题,最后可根据需要设置布局文件中顶层标签(本例中是<LinearLayout>)的宽度和高度。现在来运行程序,会看到如图9.13所示的效果。广州网站设计

图9.13  半透明窗口
飞机