android 全屏以及透明状态栏总结

来源:互联网 发布:淘宝小手段 编辑:程序博客网 时间:2024/05/06 21:22

一般启动页面的要求都是全屏显示,全屏显示可能会出现一个隐藏状态栏的动画,用户体验不是很好,现在基本都是做成透明的状态栏和ios 显示的效果一样,所以在此总结一下。下面是效果图,不是很明显是应为我全局设置的是透明的状态栏。

全屏的gif

1.全屏显示

全屏显示有2中方法进行控制,一个通过代码,一个直接控制对应activity 的 theme.可能跳转的时候都存在隐藏过度的动画效果,个人感觉用户体验不是很好。

1.1 代码控制

public class FullScreenCode extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //去除标题栏        requestWindowFeature(Window.FEATURE_NO_TITLE);        //全屏展示        getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);        setContentView(R.layout.activity_fullscreen_layout);    }}

注意点:
1.去除标题栏和全屏展示需要在setContentView 之前调用
2.不能继承 AppCompatActivity,不然会报错,报错如下

继承 AppCompatActivity的报错


1.2 AndroidManifest.xml 里面控制

xml 中

        <activity android:name=".views.activity.FullScreenXml" android:theme="@style/AppTheme.Fullscreen"/>

style.xml
NoActionBar 是没有标题栏

<!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">        <!-- Customize your theme here. -->    </style>    <style name="AppTheme.Fullscreen">        <item name="android:windowFullscreen">true</item>    </style>

2.透明状态栏

直接使用透明状态栏,用户体验会好一点。

直接在styles.xml中设置会出错

这里写图片描述

上面说明透明状态栏这个属性是只支持4.4以上的。所以需要新建一个v19的values的styles.xml

这里写图片描述

values-v19里面styles.xml中属性,增加了windowTranslucentStatus 的属性

<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">    </style>    <!-- <item name="android:windowTranslucentNavigation">true</item>-->    <style name="AppTheme.TranslucentStatus">        <item name="android:windowTranslucentStatus">true</item>    </style></resources>

具体的引用,在4.4以上设备会自动跑到v19里面去调用

<activity android:name=".views.activity.FullScreenXml4" android:theme="@style/AppTheme.TranslucentStatus"/>

最后效果图:

这里写图片描述


3.总结

特此总结归纳一下,因为今天准备写的时候,突然手生了,还需要看以前的代码或者去找资料。而且百度查到的资料,要么没有说明白,要么格式很乱,基本都是一样。
所以记录总结,方便以后回看。

0 0
原创粉丝点击