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

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

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,不然会报错,报错如下

android 全屏以及透明状态栏总结_第1张图片


1.2 AndroidManifest.xml 里面控制

xml 中

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

style.xml
NoActionBar 是没有标题栏


    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        -- Customize your theme here. -->
    style>

    <style name="AppTheme.Fullscreen">
        <item name="android:windowFullscreen">trueitem>
    style>

2.透明状态栏

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

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

android 全屏以及透明状态栏总结_第2张图片

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

android 全屏以及透明状态栏总结_第3张图片

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

<resources>


    
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    style>
    

    <style name="AppTheme.TranslucentStatus">
        <item name="android:windowTranslucentStatus">trueitem>
    style>

resources>

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

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

最后效果图:

android 全屏以及透明状态栏总结_第4张图片


3.总结

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

你可能感兴趣的:(android-杂记)