因为我们在做一些活动界面的时候,一般使用无标题的时候都会使用到全屏来显示一些活动内容,因此我们来利用创建style来实现:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="theme_full_screen" parent="android:Theme.Black">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item> <!-- 全屏的值引用了没有标题的值 -->
</style>
</resources>
这里我们是在values目录下单独创建了一个xml文件来实现该style。
当然啦,在R.java文件中对它引用的生旧是在内部类style里根据style的name属性生成的。因此我们很容易就可以想到,既然如此,这个style同样是可以脱离单独的xml文件而去放到styles.xml的<resource></resource>节点下的。
用法:
对于style的使用的地方还是比较多的,我们在这里就先在AndroidManifest.xml注册活动的地方为它添加style吧:
<activity android:name="xxx" android:theme="@style/theme_full_screen"></activity>
其实也就是为activity双标签的 android:theme属性添加了对应的style引用值;
另一种方法就是为大家所熟知的利用代码在程序中动态的设定:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//设定无标题
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏
(上边的this其实可以不用写的,个人习惯使然!)
Add:
一般而言,这个setFlags的两个参数都设置为一样即可,下面再提供两个窗体特效。当然啦,把它写成style也是可以的,具体你懂得~~~
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON//设置窗体始终点亮
WindowManager.LayoutParams.FLAG_BLUR_BEHIND//使窗体变模糊
-------------------------------------------------------------------更新线-------------------------------------------------------------------
不知道大家有没有发现,在Lolipod版本之后,我们不论是动态还是静态都无法再设置手机全屏,经本人实验好多次以及查阅资料,发现是去掉标题的方法不再在5.0及以后的版本中支持,当时我觉得天都要塌下来了......我的天,肿么办,这TM也太难看了吧~~~不过突然想起一句话“上帝为你关闭一扇门,必定会为你开启一扇窗”,于是乎就发现了可以有其他方法来实现!!!
静态配置文件如下:
<style name="theme_full_screen" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowFullscreen">true</item> </style>
Theme.AppCompat.NoActionBar 主题表示去掉标题栏(当我们想直接在活动注册的地方加上去除标题风格的时候,就需要用Theme.AppCompat.Light.NoActionBar ,别问我为什么多了一个Light,我也不知道......)
里边的item则表示去掉状态栏(这一点依然没有变过,可以推理去掉状态栏的动态设置方法依旧好使)