沉浸式状态栏确切的说应该叫做透明状态栏。一般情况下,状态栏的底色都为黑色,而沉浸式状态栏则是把状态栏设置为透明或者半透明。
沉浸式状态栏是从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沉浸式状态栏简介 沉浸式状态栏主要分为两种类型:普通沉浸式和图片沉浸式。 1. 普通...
而沉浸式状态栏允许状态栏半透明或完全透明,使得应用界面可以"沉浸"在状态栏之下,增强视觉连续性。 实现沉浸式状态栏有几种方法: 1. **使用主题设置**:在AndroidManifest.xml中,为对应的Activity设置`android...
Android系统允许开发者自定义状态栏的颜色和透明度,使得应用界面能够“沉浸”在状态栏之下,呈现出一种无缝对接的效果。 2. **步骤**: - **设置主题**:首先,你需要在`res/values/styles.xml`文件中创建一个新...
本文将深入探讨Android极简沉浸式状态栏的实现方法,以及如何在不同版本的Android系统上进行适配。 1. **Android状态栏介绍** Android状态栏是屏幕顶部显示时间、通知和电量等信息的区域。在早期版本的Android中,...
本教程将深入探讨如何在Android应用中实现沉浸式状态栏以及标题栏随着滑动而改变颜色的效果。 首先,我们需要理解“沉浸式状态栏”的概念。在Android中,沉浸式状态栏意味着状态栏的颜色会与应用内容融为一体,给人...
在Android开发中,沉浸式状态栏...综上所述,实现Android沉浸式状态栏涉及了主题设置、布局调整、颜色覆盖以及兼容性处理等多个方面。通过合理的代码组织和充分的测试,可以为用户提供更沉浸、更美观的应用体验。
在Android应用开发中,"toolbar实现沉浸式状态栏"是一个常见的设计需求,它可以使应用的界面更加美观,提供更好的用户体验。沉浸式状态栏是指状态栏(通常显示时间、信号等系统图标)的颜色与应用内容融为一体,给人...
ImmersionBar是一个简单易用的Android沉浸式状态栏解决方案,由开发者LarsWerkman创建。它支持各种Android版本,包括Android 4.4(API 19)及以上。通过简单的API调用,开发者可以快速实现状态栏和导航栏的颜色、...
总结,Android沉浸式状态栏和状态栏变色是提高应用视觉效果的重要手段。开发者需要根据目标设备的Android版本选择合适的实现方式,确保应用在不同设备上都能提供良好的用户体验。在实际开发过程中,可以根据项目需求...
4. **API兼容性**:对于Android版本较低的设备,可以使用第三方库如`android-translucent-status-bar`或者`android-immersive-fullscreen`来实现沉浸式状态栏。这些库通过反射和自定义视图等方式来兼容旧版本的...
总结,Android状态栏一体化和沉浸式状态栏技术提升了应用的美观性和用户体验,而`SystemStatusManager`类则提供了便捷的接口,帮助开发者轻松实现这些功能,降低了代码复杂度,提高了开发效率。
总之,实现Android沉浸式状态栏和透明状态栏主要依赖于正确设置主题、在布局文件中处理`fitsSystemWindows`属性,以及根据Android版本适当地使用系统UI标志。通过对这些知识点的掌握,开发者可以轻松地为自己的应用...
对于`Demo2`这个文件,可能是实现沉浸式状态栏的一个具体示例代码,你可以导入到Android Studio中运行并学习其工作原理。 总的来说,沉浸式状态栏是提升Android应用视觉效果的一种重要手段。通过这个压缩包提供的...
在Android应用开发中,提供沉浸式(Immersive)或透明式状态栏的效果可以极大地提升用户体验,让应用的视觉效果更为统一和流畅。这通常涉及到对Android系统UI的深度定制,尤其是在KitKat(API Level 19)及更高版本...
在Android开发中,沉浸式(Immersive Mode)状态栏是一种设计模式,旨在提供更为全面、无干扰的用户体验。此模式允许应用全屏显示,...通过实践和调试这个Demo,可以更好地掌握Android沉浸式状态栏和导航栏的使用方法。
首先,我们需要理解Android如何实现沉浸式状态栏。在Android 5.0(API Level 21)及更高版本中,可以通过设置Window的FLAG_LAYOUT_IN_SCREEN和FLAG_LAYOUT_IN_OVERSCAN标志,以及使用Translucent Decor来实现。在...
在Android开发中,状态栏透明,也称为沉浸式(Immersive Mode)或者全屏模式,是一种提升用户体验的设计,使得应用内容可以延伸到系统状态栏下方,提供更广阔、更沉浸式的视觉效果。本Demo主要展示了如何实现Android...