(转自:
http://marshal.easymorse.com/archives/3872)
看下面截图:
好像是Activity里声明的Dialog。其实是两个Activity,而且甚至是两个不同的App的Activity。实现这个效果很简单。
我创建了一个新的android项目。然后,给AndroidManifest文件中Activity添加了Dialog样式属性:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.easymorse.dialog" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DialogActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
这样,如果运行该app的时候屏幕上正显示其他应用的Activity,就会出现上图的效果。在这里Activity被伪装成Dialog了。Activity一般给人的印象是要占满全屏的。伪装成Dialog的效果是只显示在部分屏幕中。
或者 直接在Activity继承类中调用setTheme(android.R.style.Theme_Dialog);