`
切切歆语
  • 浏览: 30224 次
  • 性别: Icon_minigender_1
  • 来自: 泸州市
社区版块
存档分类
最新评论

Android 之低版本高版本实现沉浸式状态栏

 
阅读更多

沉浸式状态栏确切的说应该叫做透明状态栏。一般情况下,状态栏的底色都为黑色,而沉浸式状态栏则是把状态栏设置为透明或者半透明。

沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,它可以被设置成与APP顶部相同的颜色,这就使得切换APP时,整个界面就好似切换到了与APP相同的风格样式一样。在内容展示上会显得更加美观。

功能:自行控制状态栏颜色,可以调节状态栏的亮度,还可以把背景图片作为导航栏

本博客主要说的是低版本Android4.4以下或者高版本Android4.4以上都可实现来实现状态栏,效果如图:

测试时,低版本高版本都是可行的。

代码:

父类Activity

/**
 * Created by zq on 16/12/16.
 *
 * 此类便于其他Activity一同实现状态栏,只要集成此类就OK了
 *
 */

public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setMainLayout();
        setStatusBar();
    }

    /**
     * 初始化布局
     */
    protected abstract void setMainLayout();


    /***
     *状态栏 (自己选颜色即可)
     */
    protected void setStatusBar() {
        StatusBarUtil.setColor(this, getResources().getColor(R.color.colorAccent));
    }
}


MainActivity.java

public class MainActivity extends BaseActivity {

    @Override
    protected void setMainLayout() {
        setContentView(R.layout.activity_main);
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this,BackImaActivity.class));
            }
        });
    }
}



图片背景状态栏

/**
 * Created by zq on 16/12/16.
 *
 */

public class BackImaActivity extends BaseActivity {

    @Override
    protected void setMainLayout() {
        setContentView(R.layout.back_activity);
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                StatusBarUtil.setTranslucent(BackImaActivity.this,111);
            }
        });
    }
    /****
     * 重写父类方法,覆盖的作用,可以实现状态栏的不同颜色或背景
     */
    protected void setStatusBar() {

        /**
         * 参数
         * 第一个:当前上下文
         * 第二个:状态栏透明程度,值越大就越暗 0表示完全安背景显示  之范围(0-->255)
         */

        StatusBarUtil.setTranslucent(this,0);
    }
}


style.xml

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

不需要其他配置,只需要在style.xml文件中添加这两行代码即可:

<item name="windowNoTitle">true</item>
 <item name="windowActionBar">false</item>

由于代码太多,完整代码未给出,源码直接下载即可

源码点击下载



分享到:
评论

相关推荐

    Android 沉浸式状态栏(亲测好用)

    本文将深入探讨Android沉浸式状态栏的实现原理、不同类型的沉浸式状态栏,以及如何在实际项目中应用这些知识。 一、Android沉浸式状态栏简介 沉浸式状态栏主要分为两种类型:普通沉浸式和图片沉浸式。 1. 普通...

    Android沉浸式状态栏demo代码

    而沉浸式状态栏允许状态栏半透明或完全透明,使得应用界面可以"沉浸"在状态栏之下,增强视觉连续性。 实现沉浸式状态栏有几种方法: 1. **使用主题设置**:在AndroidManifest.xml中,为对应的Activity设置`android...

    Android沉浸式状态栏

    Android系统允许开发者自定义状态栏的颜色和透明度,使得应用界面能够“沉浸”在状态栏之下,呈现出一种无缝对接的效果。 2. **步骤**: - **设置主题**:首先,你需要在`res/values/styles.xml`文件中创建一个新...

    Android极简沉浸式状态栏

    本文将深入探讨Android极简沉浸式状态栏的实现方法,以及如何在不同版本的Android系统上进行适配。 1. **Android状态栏介绍** Android状态栏是屏幕顶部显示时间、通知和电量等信息的区域。在早期版本的Android中,...

    Android-Android实现沉浸式状态栏及标题栏滑动变色

    本教程将深入探讨如何在Android应用中实现沉浸式状态栏以及标题栏随着滑动而改变颜色的效果。 首先,我们需要理解“沉浸式状态栏”的概念。在Android中,沉浸式状态栏意味着状态栏的颜色会与应用内容融为一体,给人...

    android沉浸式状态栏 布局可以顶到状态栏上

    在Android开发中,沉浸式状态栏...综上所述,实现Android沉浸式状态栏涉及了主题设置、布局调整、颜色覆盖以及兼容性处理等多个方面。通过合理的代码组织和充分的测试,可以为用户提供更沉浸、更美观的应用体验。

    toolbar实现沉浸式状态栏

    在Android应用开发中,"toolbar实现沉浸式状态栏"是一个常见的设计需求,它可以使应用的界面更加美观,提供更好的用户体验。沉浸式状态栏是指状态栏(通常显示时间、信号等系统图标)的颜色与应用内容融为一体,给人...

    Android 沉浸式状态栏 ImmersionBar

    ImmersionBar是一个简单易用的Android沉浸式状态栏解决方案,由开发者LarsWerkman创建。它支持各种Android版本,包括Android 4.4(API 19)及以上。通过简单的API调用,开发者可以快速实现状态栏和导航栏的颜色、...

    Android 沉浸式状态栏与状态栏变色

    总结,Android沉浸式状态栏和状态栏变色是提高应用视觉效果的重要手段。开发者需要根据目标设备的Android版本选择合适的实现方式,确保应用在不同设备上都能提供良好的用户体验。在实际开发过程中,可以根据项目需求...

    沉浸式状态栏

    4. **API兼容性**:对于Android版本较低的设备,可以使用第三方库如`android-translucent-status-bar`或者`android-immersive-fullscreen`来实现沉浸式状态栏。这些库通过反射和自定义视图等方式来兼容旧版本的...

    android状态栏一体化,沉浸式状态栏,状态栏管理类

    总结,Android状态栏一体化和沉浸式状态栏技术提升了应用的美观性和用户体验,而`SystemStatusManager`类则提供了便捷的接口,帮助开发者轻松实现这些功能,降低了代码复杂度,提高了开发效率。

    Android 沉浸式状态栏的实现方法、状态栏透明的实现方法

    总之,实现Android沉浸式状态栏和透明状态栏主要依赖于正确设置主题、在布局文件中处理`fitsSystemWindows`属性,以及根据Android版本适当地使用系统UI标志。通过对这些知识点的掌握,开发者可以轻松地为自己的应用...

    沉浸式状态栏demo.rar

    对于`Demo2`这个文件,可能是实现沉浸式状态栏的一个具体示例代码,你可以导入到Android Studio中运行并学习其工作原理。 总的来说,沉浸式状态栏是提升Android应用视觉效果的一种重要手段。通过这个压缩包提供的...

    Android轻松实现沉浸式/透明式状态栏

    在Android应用开发中,提供沉浸式(Immersive)或透明式状态栏的效果可以极大地提升用户体验,让应用的视觉效果更为统一和流畅。这通常涉及到对Android系统UI的深度定制,尤其是在KitKat(API Level 19)及更高版本...

    android 沉浸式状态栏

    在Android开发中,沉浸式(Immersive Mode)状态栏是一种设计模式,旨在提供更为全面、无干扰的用户体验。此模式允许应用全屏显示,...通过实践和调试这个Demo,可以更好地掌握Android沉浸式状态栏和导航栏的使用方法。

    Android slidingmenu修复无法侧滑沉浸式状态栏

    首先,我们需要理解Android如何实现沉浸式状态栏。在Android 5.0(API Level 21)及更高版本中,可以通过设置Window的FLAG_LAYOUT_IN_SCREEN和FLAG_LAYOUT_IN_OVERSCAN标志,以及使用Translucent Decor来实现。在...

    Android状态栏透明(沉浸式)Demo

    在Android开发中,状态栏透明,也称为沉浸式(Immersive Mode)或者全屏模式,是一种提升用户体验的设计,使得应用内容可以延伸到系统状态栏下方,提供更广阔、更沉浸式的视觉效果。本Demo主要展示了如何实现Android...

Global site tag (gtag.js) - Google Analytics