由於繼續需要做一些無感操控的工作,之前也記錄了下利用懸浮窗的方法。今天突然發現原來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><span style="font-family:'Microsoft YaHei'"><!--activity無黑邊--></span>
- <item name="android:windowIsFloating">true</item><span style="font-family:'Microsoft YaHei'"><!--activity可滑動--></span>
- <item name="android:windowIsTranslucent">false</item><span style="font-family:'Microsoft YaHei'"><!--activity透明--></span>
- <item name="android:windowNoTitle">true</item><span style="font-family:'Microsoft YaHei'"><!--activity無標題--></span>
- <item name="android:background">@android:color/black</item>
- <item name="android:windowBackground">@null</item>
- <item name="android:backgroundDimEnabled">false</item><span style="font-family:'Microsoft YaHei'"><!--activity不變暗--></span>
- </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)