沉浸式状态栏需要Android4.4以上版本才支持
第一种方式:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 透明状态栏 getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 透明导航栏 getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); // 设置颜色 getWindow().getDecorView().setBackground( new ColorDrawable(Color.RED)); // 设置高度 getWindow().getDecorView().setPadding(0, Util.dip2px(mContext, 30), 0, 0); }
第二种方式:
public class FitSystemWindowRelativeLayout extends RelativeLayout { private int insetsBottom = 0; public FitSystemWindowRelativeLayout(Context context) { this(context, null); } public FitSystemWindowRelativeLayout(Context context, AttributeSet attrs) { this(context, attrs, 0); } public FitSystemWindowRelativeLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFitsSystemWindows(true); } @Override protected boolean fitSystemWindows(Rect insets) { insets.top = 0; return super.fitSystemWindows(insets); } public int getInsetsBottom() { return insetsBottom; } }
Activity的使用方式
@Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, this.getClass().getSimpleName() + " onCreate() invoked!!"); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); AppManager.getAppManager().addActivity(this); } @Override public void setContentView(int layoutResID) { FitSystemWindowRelativeLayout baseLayout = new FitSystemWindowRelativeLayout(this); ViewGroup rootView = (ViewGroup) getWindow().getDecorView(); rootView.removeAllViews(); mLayoutInflater = LayoutInflater.from(this); mLayoutInflater.inflate(layoutResID, rootView); super.setContentView(baseLayout); }
相关推荐
本文将深入探讨Android沉浸式状态栏的实现原理、不同类型的沉浸式状态栏,以及如何在实际项目中应用这些知识。 一、Android沉浸式状态栏简介 沉浸式状态栏主要分为两种类型:普通沉浸式和图片沉浸式。 1. 普通...
在Android应用开发中,"Android-GSystembartint-Android沉浸式状态栏实现"是一个关键的课题,特别是对于那些追求无边界、全屏体验的应用来说。GSystembartint库是专门为实现这种沉浸式状态栏效果而设计的。在本文中...
本文将介绍两种额外的Android沉浸式状态栏实现思路。 首先,我们来看传统的实现方法,通常依赖于设置状态栏透明和自定义颜色。这需要在`onCreate()`方法中添加以下代码: ```java if (Build.VERSION.SDK_INT >= ...
苹果上的UI基本上都是这个效果,然而Android机上的顶部状态栏总是和app的主题颜色不搭。还好如今的api19以上的版本,我们也能做出这样的效果。 第一步: // 需要setContentView之前调用 private void ...
这个"Android沉浸式状态栏demo代码"应该包含了一个实例,展示了如何在Android应用中实现这种效果。 首先,要理解沉浸式状态栏的工作原理。Android 5.0(Lollipop)引入了Material Design设计语言,同时也引入了透明...
在Android开发中,沉浸式状态栏...综上所述,实现Android沉浸式状态栏涉及了主题设置、布局调整、颜色覆盖以及兼容性处理等多个方面。通过合理的代码组织和充分的测试,可以为用户提供更沉浸、更美观的应用体验。
本文将深入探讨“Android沉浸式状态栏”的实现方法、应用场景以及相关的代码实践。 首先,我们要了解Android状态栏。状态栏位于屏幕顶部,通常显示时间、通知图标和其他系统信息。在传统的应用设计中,状态栏与应用...
ImmersionBar是一个简单易用的Android沉浸式状态栏解决方案,由开发者LarsWerkman创建。它支持各种Android版本,包括Android 4.4(API 19)及以上。通过简单的API调用,开发者可以快速实现状态栏和导航栏的颜色、...
本文将深入探讨Android极简沉浸式状态栏的实现方法,以及如何在不同版本的Android系统上进行适配。 1. **Android状态栏介绍** Android状态栏是屏幕顶部显示时间、通知和电量等信息的区域。在早期版本的Android中,...
总的来说,实现Android沉浸式状态栏涉及多个步骤,包括设置透明状态栏、处理导航栏颜色、以及调整布局以适应系统窗口。开发者需要根据目标设备的Android版本选择合适的实现方法,以保证兼容性和视觉效果。通过上述...
总结,Android沉浸式状态栏和状态栏变色是提高应用视觉效果的重要手段。开发者需要根据目标设备的Android版本选择合适的实现方式,确保应用在不同设备上都能提供良好的用户体验。在实际开发过程中,可以根据项目需求...
TranslucentBarDemo可能是一个包含沉浸式状态栏实现的代码示例,可以作为参考学习。 总之,实现Android沉浸式状态栏和透明状态栏主要依赖于正确设置主题、在布局文件中处理`fitsSystemWindows`属性,以及根据...
在Android开发中,沉浸式(Immersive Mode)状态栏是一种设计模式,旨在提供更为全面、无干扰的用户体验。此模式允许应用全屏显示,...通过实践和调试这个Demo,可以更好地掌握Android沉浸式状态栏和导航栏的使用方法。
AS写的沉浸式状态栏、导航栏demo,用的是开源库SystemBarTint。 blog:http://blog.csdn.net/shenyuanqing/article/details/49364921
对于`Demo2`这个文件,可能是实现沉浸式状态栏的一个具体示例代码,你可以导入到Android Studio中运行并学习其工作原理。 总的来说,沉浸式状态栏是提升Android应用视觉效果的一种重要手段。通过这个压缩包提供的...
本教程将深入探讨如何在Android应用中实现沉浸式状态栏以及标题栏随着滑动而改变颜色的效果。 首先,我们需要理解“沉浸式状态栏”的概念。在Android中,沉浸式状态栏意味着状态栏的颜色会与应用内容融为一体,给人...
1. **Android沉浸式状态栏** Android沉浸式模式主要通过`SYSTEM_UI_FLAG_HIDE_NAVIGATION`和`SYSTEM_UI_FLAG_FULLSCREEN`两个系统UI标志来实现。通过设置这两个标志,可以隐藏导航栏和状态栏,让应用内容全屏显示。...