精华内容
下载资源
问答
  • 2018-04-11 22:16:31

    方法一:

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //去除title
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            //去掉Activity上面的状态栏
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.video_view);
            initView();
        }

    方法二:

    <activity
                android:name="*.Activity"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    </activity>

    更多相关内容
  • 主要为大家详细介绍了3种Android隐藏顶部状态栏及标题栏的方法,还涉及一种隐藏Android 4.0平板底部状态栏的方法,感兴趣的小伙伴们可以参考一下
  • 本文给大家分享两种隐藏状态栏的方法及在实现的过程中遇到的坑,下面在本文中给大家做个总结,希望对大家学习android顶部状态栏知识有所帮助
  • Android 动态显示和隐藏状态栏 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。 setSystemUiVisibility(int ...
  • 因为在项目中用到了这两个功能,而且这两个功能使用频率也很高,特别mark一下。我所记录的只是我实现有效的方式,当然也有其它更简单的方式,这里只以需求为导向,不作细究。...透明顶部状态栏 状态栏.

    因为在项目中用到了这两个功能,而且这两个功能使用频率也很高,特别mark一下。我所记录的只是我实现有效的方式,当然也有其它更简单的方式,这里只以需求为导向,不作细究。

    隐藏标题栏

    隐藏标题栏比较简单,只需要在MainActivity中的onCreate下添加

     ActionBar actionBar = getActionBar();
            if (actionBar != null) {
                actionBar.hide();
            }
    

    透明顶部状态栏

    状态栏默认的颜色是绿色的,很丑,更改颜色可以在theme中修改对应主题的颜色。
    当然,个人认为透明状态栏最为美观,下面是实现方式:

    1、在gradle中添加依赖

     api 'com.readystatesoftware.systembartint:systembartint:1.0.3'
    

    添加完记得 Sync Now一下。

    2、创建StatusBarUtil工具类
    StatusBarUtil.java

    package com.baidu.location.demo;
    
    import android.annotation.TargetApi;
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Build;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import com.readystatesoftware.systembartint.SystemBarTintManager;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    /**
     * 状态栏工具类
     */
    public class StatusBarUtil {
        /**
         * 修改状态栏为全透明
         *
         * @param activity
         */
        @TargetApi(19)
        public static void transparencyBar(Activity activity) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                Window window = activity.getWindow();
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.setStatusBarColor(Color.TRANSPARENT);
    
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                Window window = activity.getWindow();
                window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                        WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            }
        }
    
        /**
         * 修改状态栏颜色,支持4.4以上版本
         *
         * @param activity
         * @param colorId
         */
        public static void setStatusBarColor(Activity activity, int colorId) {
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                Window window = activity.getWindow();
                window.setStatusBarColor(activity.getResources().getColor(colorId));
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                //使用SystemBarTint库使4.4版本状态栏变色,需要先将状态栏设置为透明
                transparencyBar(activity);
                SystemBarTintManager tintManager = new SystemBarTintManager(activity);
                tintManager.setStatusBarTintEnabled(true);
                tintManager.setStatusBarTintResource(colorId);
            }
        }
    
        /**
         * 状态栏亮色模式,设置状态栏黑色文字、图标,
         * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android
         *
         * @param activity
         * @return 1:MIUUI 2:Flyme 3:android6.0
         */
        public static int StatusBarLightMode(Activity activity) {
            int result = 0;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                if (MIUISetStatusBarLightMode(activity, true)) {
                    result = 1;
                } else if (FlymeSetStatusBarLightMode(activity.getWindow(), true)) {
                    result = 2;
                } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
                    result = 3;
                }
            }
            return result;
        }
    
        /**
         * 已知系统类型时,设置状态栏黑色文字、图标。
         * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android
         *
         * @param activity
         * @param type     1:MIUUI 2:Flyme 3:android6.0
         */
        public static void StatusBarLightMode(Activity activity, int type) {
            if (type == 1) {
                MIUISetStatusBarLightMode(activity, true);
            } else if (type == 2) {
                FlymeSetStatusBarLightMode(activity.getWindow(), true);
            } else if (type == 3) {
                activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }
    
        }
    
        /**
         * 状态栏暗色模式,清除MIUI、flyme或6.0以上版本状态栏黑色文字、图标
         */
        public static void StatusBarDarkMode(Activity activity, int type) {
            if (type == 1) {
                MIUISetStatusBarLightMode(activity, false);
            } else if (type == 2) {
                FlymeSetStatusBarLightMode(activity.getWindow(), false);
            } else if (type == 3) {
                activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
            }
    
        }
    
    
        /**
         * 设置状态栏图标为深色和魅族特定的文字风格
         * 可以用来判断是否为Flyme用户
         *
         * @param window 需要设置的窗口
         * @param dark   是否把状态栏文字及图标颜色设置为深色
         * @return boolean 成功执行返回true
         */
        public static boolean FlymeSetStatusBarLightMode(Window window, boolean dark) {
            boolean result = false;
            if (window != null) {
                try {
                    WindowManager.LayoutParams lp = window.getAttributes();
                    Field darkFlag = WindowManager.LayoutParams.class
                            .getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
                    Field meizuFlags = WindowManager.LayoutParams.class
                            .getDeclaredField("meizuFlags");
                    darkFlag.setAccessible(true);
                    meizuFlags.setAccessible(true);
                    int bit = darkFlag.getInt(null);
                    int value = meizuFlags.getInt(lp);
                    if (dark) {
                        value |= bit;
                    } else {
                        value &= ~bit;
                    }
                    meizuFlags.setInt(lp, value);
                    window.setAttributes(lp);
                    result = true;
                } catch (Exception e) {
    
                }
            }
            return result;
        }
    
        /**
         * 需要MIUIV6以上
         *
         * @param activity
         * @param dark     是否把状态栏文字及图标颜色设置为深色
         * @return boolean 成功执行返回true
         */
        public static boolean MIUISetStatusBarLightMode(Activity activity, boolean dark) {
            boolean result = false;
            Window window = activity.getWindow();
            if (window != null) {
                Class clazz = window.getClass();
                try {
                    int darkModeFlag = 0;
                    Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
                    Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
                    darkModeFlag = field.getInt(layoutParams);
                    Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
                    if (dark) {
                        extraFlagField.invoke(window, darkModeFlag, darkModeFlag);//状态栏透明且黑色字体
                    } else {
                        extraFlagField.invoke(window, 0, darkModeFlag);//清除黑色字体
                    }
                    result = true;
    
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                        //开发版 7.7.13 及以后版本采用了系统API,旧方法无效但不会报错,所以两个方式都要加上
                        if (dark) {
                            activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
                        } else {
                            activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
                        }
                    }
                } catch (Exception e) {
                }
            }
            return result;
        }
    }
    

    3、在MainActivity中的onCreate下添加

    StatusBarUtil.transparencyBar(this);
    

    这样就设置好了。

    参考资料

    Android 天气APP(四)搭建MVP框架与使用

    展开全文
  • //LayoutParams.FLAG_FULLSCREEN 强制屏幕状态弹出 lp2.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; activity1.getWindow().setAttributes(lp2); //不允许窗口扩展到屏幕之外 activity1.getWindow()...
    public class GuiUtils {
        public static void hideStatusBar(AppCompatActivity activity1){
            WindowManager.LayoutParams lp2 = activity1.getWindow().getAttributes();
            //LayoutParams.FLAG_FULLSCREEN 强制屏幕状态条栏弹出
            lp2.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
            activity1.getWindow().setAttributes(lp2);
            //不允许窗口扩展到屏幕之外
            activity1.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    
            activity1.setContentView(R.layout.activity_main);
        }
    }
    

    构造静态函数,传入activity即可

    展开全文
  • NULL 博文链接:https://technicalsearch.iteye.com/blog/2202259
  • 状态栏图标的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通知,定位,蓝牙,信号,时间,电池等图标,只要在相应的布局文件中加入属性android:visibility=”invisible” 或者...
  • 主要介绍了Android五种隐藏状态栏和标题栏的方法的相关资料,需要的朋友可以参考下
  • frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBar.java 找到addStatusBarWindow方法 private void addStatusBarWindow() { makeStatusBarView(); mStatusBarWindowMan

    分析:修改系统UI,一般都在SystemUI路径下面去改代码
    下面是高通MSM8909和MSM8953的修改方法
    第一步:
    frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBar.java
    找到addStatusBarWindow方法
    private void addStatusBarWindow() {
    makeStatusBarView();
    mStatusBarWindowManager = new StatusBarWindowManager(mContext);
    mRemoteInputController = new RemoteInputController(mStatusBarWindowManager,
    mHeadsUpManager);
    mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
    ++ mStatusBarView.setVisibility(View.GONE); //添加这一行便可
    }

    第二步:找到SystemUI的顶部状态栏布局的宽高值
    路径:android/frameworks/base/core/res/res/values/dimens.xml
    找到
    – <dimenname=”status_bar_height”>25dip

    ++ <dimenname=”status_bar_height”>0dip
    修改这2处,顶部状态栏便可彻底隐藏,所有图标都不会显示,开发者可以在上层应用的apk中自行开发顶部状态栏
    -------------------------------------------dividing line-------------------------------------------------------
    下面来说一下RK平台如何修改
    修改路径和上面一样,先找到PhoneStatusBar.java类,然后找到addStatusBarWindow方法
    第一种方法:
    第一步:
    private void addStatusBarWindow() {
    makeStatusBarView();
    mStatusBarWindowManager = new StatusBarWindowManager(mContext);
    mRemoteInputController = new RemoteInputController(mStatusBarWindowManager,
    mHeadsUpManager);
    mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
    ++ //add by wf
    – no_statusbar = SystemProperties.get(“ro.rpdzkj.no.statusbar”,“false”);
    ++ // no_statusbar = SystemProperties.get(“ro.rpdzkj.no.statusbar”,“false”);
    – if (“true”.equals(no_statusbar)) {
    ++ // if (“true”.equals(no_statusbar)) {
    mStatusBarView.setVisibility(View.GONE);
    – }
    ++ // }
    //end
    }
    第二步:

    – <dimenname=”status_bar_height”>24dip

    ++ <dimenname=”status_bar_height”>0dip

    注意:修改上面两处是可以隐藏掉顶部状态栏,后来发现不用这么麻烦,RK开发板已经做了可配置化,只需要
    Kernel/arch/arm/boot/dts/rp-rk3288.dts
    找到
    not_navigation_bar = “false”;//是否需要导航栏,true 表示有导航栏,false 相反
    not_status_bar = “false”;//是否需要状态栏 true 表示有状态栏,false 相反

    展开全文
  • [Android] 隐藏头顶状态栏

    千次阅读 2021-12-20 22:37:46
    隐藏头顶状态栏
  • 主要介绍了Android Studio实现标题栏和状态栏隐藏功能,在文中给大家补充介绍了android studio 去掉标题栏状态栏的完整代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • Android 5.0(API 21)之后就可以对系统状态栏进行设置了,这里我不是想深入讨论对系统状态栏的一些高级设置,因为一般也用不到,我只想说最常见的两种场景隐藏系统状态栏,这就是感觉很牛逼的沉浸式状态栏状态栏颜色...
  • Android隐藏顶部状态栏:

    千次阅读 2017-07-23 14:37:57
    方法一:  //去除title ...//去掉Activity上面的状态栏 (注意这句话放的位置应定要放在setContentView之前) getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager
  • 方法一:public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate...// 隐藏标题requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐...
  • 将res/values下的styles.xml中的: <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- All customizations that are NOT specific to a ...-- 隐藏状态栏 --> <item name=
  • 主要介绍了Android顶部状态栏透明化并释放空间的两种实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 如下图在配置文件里面设置了隐藏状态栏无效 ![图片说明](https://img-ask.csdn.net/upload/201602/23/1456220464_38804.png) 在MainActivity里面设置了也无效 ![图片说明]...
  • 啥也不说了,先上效果图:giphy.gif设置状态栏透明:protected void setSystemBarTransparent(){getWindow().setStatusBarColor(Color.TRANSPARENT);getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_...
  • 安卓手机、平板;华为手机、平板全面屏教程;ADB调试
  • Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼. 需求场景: 当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于用...
  • 尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频。当切换回竖屏后,又显示状态栏。那么如何实现呢?网上流传着很多种做法。比如:1、在AndroidManifest.xml文件中修改theme...
  • 一、先看加载页如下图(图片加了个黑框,方便看清效果) 二、AndroidManifest.xml清单文件中配置如下,改成首先进入加载页) ...action android:name="android.intent.action.MAIN" /> .
  • 上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,327
精华内容 3,330
关键字:

安卓隐藏顶部状态栏

友情链接: Reline.rar