Android手机底部栏虚拟按键的操作

防止屏幕长度和主流不符导致底部出现黑色空白区域,应该在AndroidManifest.xml文件中,添加如下代码:


实例图.png

至于在Application中添加 android:resizeableActivity="true" 以及 meta-data的宽高比设置问题请各位看官上谷歌官网查阅。

  /**
 * 设置底部虚拟导航操作栏的颜色
 * @param context
 * @param color
 */
private void setNavigationBar(Activity context, int color) {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        context.getWindow().setNavigationBarColor(color);
    }
}

/**
 * 修改虚拟按键显示状态
 * @param context
 * @param isBottomBarShow
 */
private void changeBottomUIMenu(Activity context, boolean isBottomBarShow) {
    // 修改虚拟按键显示状态
    if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB && android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { // lower api
        View v = context.getWindow().getDecorView();
        v.setSystemUiVisibility(isBottomBarShow ? View.VISIBLE : View.GONE);
    }
    // api19之后需要做别的处理
    else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        View decorView = context.getWindow().getDecorView();
        int uiOptions = isBottomBarShow ? View.SYSTEM_UI_FLAG_VISIBLE : View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;// 需要全屏则添加上 View.SYSTEM_UI_FLAG_FULLSCREEN
        decorView.setSystemUiVisibility(uiOptions);
    }
}

你可能感兴趣的:(Android手机底部栏虚拟按键的操作)