`
yaolinnan
  • 浏览: 58614 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

Android沉浸式状态栏的实现

 
阅读更多

 沉浸式状态栏需要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);
	}

 

精彩科技工作室
0
0
分享到:
评论

相关推荐

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

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

    Android-GSystembartint-Android沉浸式状态栏实现

    在Android应用开发中,"Android-GSystembartint-Android沉浸式状态栏实现"是一个关键的课题,特别是对于那些追求无边界、全屏体验的应用来说。GSystembartint库是专门为实现这种沉浸式状态栏效果而设计的。在本文中...

    另外两种 Android 沉浸式状态栏实现思路1

    本文将介绍两种额外的Android沉浸式状态栏实现思路。 首先,我们来看传统的实现方法,通常依赖于设置状态栏透明和自定义颜色。这需要在`onCreate()`方法中添加以下代码: ```java if (Build.VERSION.SDK_INT >= ...

    Android沉浸式状态栏实现

    苹果上的UI基本上都是这个效果,然而Android机上的顶部状态栏总是和app的主题颜色不搭。还好如今的api19以上的版本,我们也能做出这样的效果。 第一步: // 需要setContentView之前调用 private void ...

    Android沉浸式状态栏demo代码

    这个"Android沉浸式状态栏demo代码"应该包含了一个实例,展示了如何在Android应用中实现这种效果。 首先,要理解沉浸式状态栏的工作原理。Android 5.0(Lollipop)引入了Material Design设计语言,同时也引入了透明...

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

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

    Android沉浸式状态栏

    本文将深入探讨“Android沉浸式状态栏”的实现方法、应用场景以及相关的代码实践。 首先,我们要了解Android状态栏。状态栏位于屏幕顶部,通常显示时间、通知图标和其他系统信息。在传统的应用设计中,状态栏与应用...

    Android 沉浸式状态栏 ImmersionBar

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

    Android极简沉浸式状态栏

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

    Android沉浸式状态栏实现示例

    总的来说,实现Android沉浸式状态栏涉及多个步骤,包括设置透明状态栏、处理导航栏颜色、以及调整布局以适应系统窗口。开发者需要根据目标设备的Android版本选择合适的实现方法,以保证兼容性和视觉效果。通过上述...

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

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

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

    TranslucentBarDemo可能是一个包含沉浸式状态栏实现的代码示例,可以作为参考学习。 总之,实现Android沉浸式状态栏和透明状态栏主要依赖于正确设置主题、在布局文件中处理`fitsSystemWindows`属性,以及根据...

    android 沉浸式状态栏

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

    Android沉浸式状态栏、导航栏

    AS写的沉浸式状态栏、导航栏demo,用的是开源库SystemBarTint。 blog:http://blog.csdn.net/shenyuanqing/article/details/49364921

    沉浸式状态栏demo.rar

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

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

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

    android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

    1. **Android沉浸式状态栏** Android沉浸式模式主要通过`SYSTEM_UI_FLAG_HIDE_NAVIGATION`和`SYSTEM_UI_FLAG_FULLSCREEN`两个系统UI标志来实现。通过设置这两个标志,可以隐藏导航栏和状态栏,让应用内容全屏显示。...

Global site tag (gtag.js) - Google Analytics