沉浸式状态栏

沉浸式效果-最低支持到v19

方法1:values-v19下的styles.xml 设置windowTranslucentStatus为true
这里写图片描述
方法2:java中设置
这里写图片描述

注:以上方式支持一般的页面,但是像侧滑栏菜单这种事支持不了的!

关于侧滑栏菜单的沉侵式效果

依然要创建一个BaseActivity:

@TargetApi(19)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
            // // 全屏不隐藏状态栏
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
             // 设置状态栏透明
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
        super.onCreate(savedInstanceState);
    }

子Activity继承

@TargetApi(19)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_status = (TextView) findViewById(R.id.tv_status);

        if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
            tv_status.setHeight(getStatusHeight(this));
            tv_status.setVisibility(View.VISIBLE);
        } else {
            tv_status.setHeight(0);
            tv_status.setVisibility(View.GONE);
        }
    }
    //getStatusHeight方法为计算状态栏高度的方法:
    public int getStatusHeight(Activity activity) {
        int statusHeight = 0;
        Rect localRect = new Rect();
        activity.getWindow().getDecorView()
                .getWindowVisibleDisplayFrame(localRect);
        statusHeight = localRect.top;
        if (0 == statusHeight) {
            Class<?> localClass;
            try {
                localClass = Class.forName("com.android.internal.R$dimen");
                Object localObject = localClass.newInstance();
                int i5 = Integer.parseInt(localClass
                        .getField("status_bar_height").get(localObject)
                        .toString());
                statusHeight = activity.getResources()
                        .getDimensionPixelSize(i5);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return statusHeight;
    }

布局Xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_status"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#00ccee" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#00ccee" >

        <TextView
            android:id="@+id/tv_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:text="菜单"
            android:textColor="#FFFFFF"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="消息"
            android:textColor="#FFFFFF"
            android:textSize="18sp" />
    </RelativeLayout>

</LinearLayout>

注:tv_status控件就是用来设置为状态栏高度的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity沉浸状态栏是指在使用Unity引擎开发应用程序时,可以隐藏或者自定义应用程序的状态栏。在移动设备上,状态栏通常包含手机的信号、电池信息等系统图标。通过实现沉浸状态栏,开发者可以使应用程序在全屏状态下运行,更好地提供用户体验。 在Unity中,实现沉浸状态栏可以通过以下步骤进行: 首先,开发者需要在Unity中创建一个全屏的视图,包括一整块可以占满屏幕的画布。 然后,通过调用Unity的API函数,可以隐藏状态栏。在Android平台上,可以使用Application类的方法SetStatusBarHidden()将状态栏隐藏起来,并且设置为全屏状态。在iOS平台上,可以使用Screen类的方法SetStatusBarHidden()来隐藏状态栏。 此外,也可以自定义状态栏的样,使其与应用程序的设计风格相符。例如,在Android平台上,可以使用Unity提供的插件设置状态栏的颜色、字体颜色等属性。 需要注意的是,沉浸状态栏功能在不同的平台上具有不同的实现方法和限制。为了确保应用程序的兼容性和稳定性,在使用沉浸状态栏的时候,开发者需要根据不同的平台和设备进行适配和测试。 综上所述,Unity沉浸状态栏是通过隐藏或自定义状态栏,在应用程序运行时提供更加全屏的体验。开发者可以通过Unity的API函数实现沉浸状态栏,并根据需要进行定制,提升应用程序的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值