Android学习--系统顶部状态栏透明化

来源:互联网 发布:你给我的温柔网络歌曲 编辑:程序博客网 时间:2024/06/05 17:02
 @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //系统版本号判断,5.0以上系统才支持改变系统状态栏风格功能        if (Build.VERSION.SDK_INT>=21) {            //拿到当前活动的DecorView            View decorView  = getWindow().getDecorView();//拿到当前活动的DecorView            //表示活动的布局会显示在状态栏上面            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);            //setStatusBarColor()方法将状态栏设置为透明色            getWindow().setStatusBarColor(Color.TRANSPARENT);        }        setContentView(R.layout.activity_weather);        init_view();    }

相应布局中配置属性android:fitsSystemWindows="true",为状态栏留空间,然后整体画面不会上移。


<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/colorPrimary">    <ImageView        android:id="@+id/bing_pic_img"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:scaleType="centerCrop" />    <ScrollView        android:id="@+id/weather_layout"        android:layout_width="match_parent"        android:layout_height="match_parent">        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="vertical"            android:fitsSystemWindows="true">            <include layout="@layout/title" />            <include layout="@layout/now" />            <include layout="@layout/forecast" />            <include layout="@layout/aqi" />            <include layout="@layout/suggestion" />        </LinearLayout>    </ScrollView></FrameLayout>

其他方法:

   View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。

   setSystemUiVisibility(int visibility)方法可传入的实参为:

    1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。

    2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。

    3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。

    4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。

    5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

    6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

    7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。

    8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。




阅读全文
0 0
原创粉丝点击