浅析Activity不可见与透明

http://blog.csdn.net/lincyang/article/details/6868582

 

看见标题也许你会有疑问,不可见和透明不是一个意思吗?

从字面上看,这还真是差不多。但在Activity中,这是两个不同的特性,下面我分别解释一下分别和在使用中的注意事项。

Activity不可见:只要在Activity设置setVisible(false)就会令Activity不可见,还可以设置属性 windowNoDisplay =true。在2.2的模拟器中,activity不可见后,屏幕为黑屏,而此时按键会不响应并造成ANR.而在4.0的模拟器中,用此设 置,activity仍可见,但上面的button不响应。这样看来,不可见一定要慎用,否则ANR会造成非常差的用户体验。

 Activity透明:使用主题来使其透明,只需在Manifest中activity的设置如下:android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen“。

                       虽然activity是透明了,但是其上的view如textview、button等控件还是可见的。如果只有一个activity,那么它下面的 activity就会完全暴露出来。根据生命周期分析可知,下面的activity此时的状态在Pause。而此时我按Back键,一个奇怪的现象发生 了:透明activity pause后,下面的activity resume,然后STOP!最后透明activity destroy。

posted @ 2015-12-04 10:49  misybing  阅读(2699)  评论(0编辑  收藏  举报