透明式状态栏和着色状态栏
来源:互联网 发布:最好用的crm软件 编辑:程序博客网 时间:2024/06/04 10:47
在没有图片背景的activity布局中设置着色状态栏
设置此方法的时候必需在BaseActivity中把布局文件那行代码删除
// setContentView(R.layout.activity_main3);
在所有继承此Acitivity的子activity中把
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
调换位置
setContentView(R.layout.activity_main3);
super.onCreate(savedInstanceState);
先加载布局文件再加载super方法
/** * 设置状态栏颜色 * * @param activity 需要设置的activity * @param color 状态栏颜色值 */ private void setColor(Activity activity, int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 设置状态栏透明 activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 生成一个状态栏大小的矩形 View statusView = createStatusView(activity, color); // 添加 statusView 到布局中 ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); decorView.addView(statusView); // 设置根布局的参数 ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); rootView.setFitsSystemWindows(true); rootView.setClipToPadding(true); } } /** * 生成一个和状态栏大小相同的矩形条 * * @param activity 需要设置的activity * @param color 状态栏颜色值 * @return 状态栏矩形条 */ private static View createStatusView(Activity activity, int color) { // 获得状态栏高度 int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); // 绘制一个和状态栏一样高的矩形 View statusView = new View(activity); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); statusView.setLayoutParams(params); statusView.setBackgroundColor(color); return statusView; }
有图片背景时设置透明式状态栏
/** * 使状态栏透明 * <p> * 适用于图片作为背景的界面,此时需要图片填充到状态栏 * * @param activity 需要设置的activity */ public static void setTranslucent(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 设置状态栏透明 activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 设置根布局的参数 ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); rootView.setFitsSystemWindows(true); rootView.setClipToPadding(true); } }
另个方法同样把baseactivity中的布局文件删除在oncrete方法里面添加
getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
代码并把
setColor方法中的
// 设置根布局的参数 ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); rootView.setFitsSystemWindows(true); rootView.setClipToPadding(true);
另外分享个屏幕取色器,方便大家开发:
下载地址:
0 0
- 透明式状态栏和着色状态栏
- Android 透明状态栏 、着色状态栏 (沉浸式状态栏)
- Android状态栏着色-透明状态栏
- 漫谈透明状态栏和沉浸式状态栏
- 透明状态栏和沉浸式
- 沉浸式状态栏/透明状态栏
- 透明状态栏(沉浸式状态栏)
- 状态栏着色;沉浸式
- 导航和状态栏透明
- Android透明状态栏和沉浸式状态栏实现
- 改变、透明状态栏和导航栏颜色 (沉浸式状态栏)
- 状态栏着色
- 着色状态栏
- Android 沉浸式状态栏以及 透明状态栏 和修改状态栏颜色
- 透明式状态栏 沉浸式状态栏
- Android透明状态栏(沉浸式状态栏)
- 透明状态栏(沉浸式状态栏)
- Android 沉浸式状态栏,状态栏颜色透明
- 利用iframe实现表单的无刷新提交
- SQL多表连接查询
- 【转】Eclipse/MyEclipse 最最常用的快捷键
- Android Studio的多渠道打包
- iOS Xcode中Version和Build的区别
- 透明式状态栏和着色状态栏
- HUST 1619 小明的细胞
- cookie操作的封装
- Workflow相关表简单分析
- Unity利用 UI的Mask实现对精灵Sprite的遮挡
- android scrollview 嵌套 webview
- ubuntu2.4编译内核配置
- linux下查询网卡类型和驱动信息
- Android6.0 Telephony Frameworks之数据业务建立流程