Android 中 activity 窗口模式的实现

来源:互联网 发布:c语言经典算法100例 编辑:程序博客网 时间:2024/04/28 00:05


       有一定Andriod编程基础的人都知道Andriod中activity之间的界面切换,第二个activity的界面会覆盖第一个。那么能否让第二个activity的界面以窗口的形式展示出来,而不完全覆盖上一个Acticity的展示呢?可以在AndroidManifest.xml中为你需要显示为窗口的activity中添加如果属性:android:theme为android:theme="@android:style/Theme.Dialog"即可。   
 如果你想自定义窗口模式的显示,可以在value--style.xml中添加一个style,在style下的标签item下添加属性即可,当然也可以更换形状,只要在item下设置好形状类型就可以了(这里也可以是自定义形状)。具体代码可以参考如下:AndroidManifest.xml中(不自定义dialog的显示模式)


       <activity            android:name="com.ldank.www.ui.InfoActivity"            android:configChanges="orientation|keyboardHidden|screenSize|navigation"            android:launchMode="standard"            android:theme="@android:style/Theme.Dialog"            android:screenOrientation="portrait"            android:windowSoftInputMode="adjustResize|stateAlwaysHidden|adjustPan" >        </activity>
这里面theme当然还有其他的模式,具体可以参见Andriod的api。

当然这个theme也可以加载application标签下,这样对所有的activity都会生效。
AndroidManifest.xml中(自定义dialog的显示模式,如自定义theme为Theme.FloatActivity)

将“android:theme="@android:style/Theme.Dialog”改为“android:theme="@android:style/Theme.FloatActivity”即可

自定义在style.xml添加

    <style name="Theme.FloatActivity" parent="Android:style/Theme.Dialog">        <!-- float_box为我们定义的窗口背景 ,这个不是必须的-->        <item name="android:windowBackground">@drawable/float_box</item>    </style>
float_box是为dialog自定义的形状

可以在drawable中新建一个叫float_box.xml的文件,内容可以如下(自定义)

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <solid android:color="#ffffff" />    <stroke android:width="3dp" color="#000000" />    <corners android:radius="3dp" />    <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /></shape>

2 0
原创粉丝点击