Activity 变成对话框,然后再隐藏?

由于继续需要做一些无感操控的工作,之前也记录了下利用悬浮窗的方法。今天突然发现原来activity可以直接嗯嗯嗯啊。

首先我在AndroidManifest里给activity添加了如下一行:

android:theme="@android:style/Theme.Dialog"   

ok,我发现activity变成对话框的弹出模式了。但是背景也就是桌面是变暗的,我希望能恢复正常的亮度,也就是透明的效果,于是继续搜索。

发现:

android:theme="@android:style/Theme.Translucent" 

这个应该可以让activity变成透明的,但是不能声明两次Theme啊,于是继续找办法,发现,哦,我可以声明style啊。

在style 的xml 里 设置如下:

<resources>
    <style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:backgroundDimEnabled">false</item><!--activity不变暗-->
    </style>
</resources>

然后将manifest里改成:

android:theme="@style/dialog"

嗯,继续,我希望没有标题,那么添加

<item name="android:windowNoTitle">true</item>

此时我以为就达到目的了,于是我修改了layout文件的布局大小,宽高都修改成1dp,但是我发现程序运行是屏幕上有个框。。。原来是activity的黑边,我要消掉他。

于是

<item name="android:windowFrame">@null</item> 

经过不断的修改之后,最后的style.xml就变成了:

<resources>
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!-- activity无黑边 -->
<item name="android:windowIsFloating">true</item><!-- activity可滑动 -->
<item name="android:windowIsTranslucent">false</item><!-- activity透明 -->
<item name="android:windowNoTitle">true</item><!-- activity无标题 -->
<item name="android:background">@android:color/black</item>
<item name="android:windowBackground">@null</item>
<item name="android:backgroundDimEnabled">false</item><!-- activity不变暗 -->
</style>
</resources>

现在看起来好多了,但是又发现了一个问题,就是点击activity之外的地方,activity自己就退出了,直接回到了桌面。。。

那么onCreate()方法里加上这句 setFinishOnTouchOutside(false);或者在style里添加:

 <item name="android:windowCloseOnTouchOutside">false</item><!-- activity点击空白部分不消失 -->
(以上不消失activity的方法需要api11以上,版本低的话需要再进行一些函数操作,可参考:http://blog.csdn.net/voiceofnet/article/details/9061309


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值