默认情况下,一个activity占据整个屏幕。然而,可以为一个activity设置一个“对话框”主题,这样,它就能像一个浮动的对话框显示出来了。举个例子,你可能想要把你的activity定义成一个弹出的“对话框”,通知用户进行一些操作。在这种情况下,显示一个“对话框”样式的anctivity是一个引起用户注意的好方法。想要给activity设置主题,很简单,只需在AndroidManifest.xml文件中为<application>元素添加android:theme属性就行了。
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="net.horsttnann.Activity101"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk android:minSdkVersion="14" />
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@android:style/Theme.Dialog">
- <activity
- android:label="@string/app_name"
- android:name="net.horsttnann.Activity101.Activity101Activity" >
- <intent-filter >
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
如果愿意的话,可以把Activity的标题栏给隐藏了。只需要调用requestWindowFeature()方法,同时传递Window.FEATURE_NO_TITLE常量。
- package net.horsttnann.Activity101;
- import net.horsttnann.Activity101.R;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Window;
- public class Activity101Activity extends Activity {
- String tag = "Lifecycle";
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // ---hides the title bar---
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.main);
- }
- }
注意:
4.0上如果还用Theme.Dialog,只能说很土,跟整体UI风格差别很大
请使用android:theme="@android:style/Theme.Holo.DialogWhenLarge"
上效果对比图:
@android:style/Theme.Holo.DialogWhenLarge:
@android:style/Theme.Dialog