• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 更简单更全的material design状态栏

更简单更全的material design状态栏

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了material design,material design风格,material design色板,material design教程,material design 库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

更简单更全的material design状态栏


从实际使用需要出发,以最简单的方式实现了几种类型的MD状态栏。(重点在fitsSystemWindows的使用)

0,使用前提

Theme.AppCompat.Light.DarkActionBar

targetSdkVersion 23;

support librariy 23.3.0

styles-v19:true

styles-v21+:true @android:color/transparent

1,最普通的类型:只有一个ToolBar

layout:

 



    

        

    

 

.java:

 

/**
 * 简单型状态栏(ToolBar)
 *
 * @param activity
 */
public static void setOrdinaryToolBar(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        activity.getWindow().setStatusBarColor(ContextCompat.getColor(activity, R.color.colorPrimaryDark));
    } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
        setKKStatusBar(activity, R.color.colorPrimaryDark);
    }
}
效果:

 

左:Android4.4 右:Android6.0

\\

 

 

2,图片全屏透明状态栏(图片位于状态栏下面)

layout:



    

    windows="true" android:layout_height="wrap_content" />

.java

 


/**  * 图片全屏透明状态栏(图片位于状态栏下面)  *  * @param activity  */ public static void setImageTransparent(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } }

 

效果:

左:Android4.4 右:Android6.0

\\

 

3,图片全屏半透明状态栏(图片位于状态栏下面)

layout:

 



    

    

.java:

 

 

/**
 * 图片全屏半透明状态栏(图片位于状态栏下面)
 *
 * @param activity
 */
public static void setImageTranslucent(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        activity.getWindow().setStatusBarColor(ContextCompat.getColor(activity, R.color.statusBar));
    } else {
        setKKStatusBar(activity, R.color.statusBar);
    }
}

 

效果:

左:Android4.4 右:Android6.0

\\

 

 

4,ToolBar+TabLayout状态栏(ToolBar可伸缩)

layout:

 



    

        

        

    

     

.java:

 

 

/**
 * ToolBar+TabLayout状态栏(ToolBar可伸缩)
 *
 * @param activity
 */
public static void setToolbarTabLayout(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        activity.getWindow().setStatusBarColor(ContextCompat.getColor(activity, R.color.colorPrimaryDark));
    }
}

 

效果:

Android4.4:

\\

Android6.0:

\\

 

5,DrawerLayout+ToolBar+TabLayout状态栏(ToolBar可伸缩)

layout:



    

        

            

            

        

        

    

    

.java:

 

/**
 * DrawerLayout+ToolBar+TabLayout状态栏(ToolBar可伸缩)
 *
 * @param activity
 * @param drawerLayout
 * @param coordinatorLayout
 */
public static void setDrawerToolbarTabLayout(Activity activity, CoordinatorLayout coordinatorLayout) {
    if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
        ViewGroup contentLayout = (ViewGroup) activity.findViewById(android.R.id.content);
        contentLayout.getChildAt(0).setFitsSystemWindows(false);
        coordinatorLayout.setFitsSystemWindows(true);
        setKKStatusBar(activity, R.color.statusBar);
    }
}

 

效果:

Android4.4:

\\\

Android6.0:

\\\

 

 

6,CollapsingToolbarLayout状态栏(可折叠图片)

layout:



    

        

            

            

        

    

     

.java:

 

/**
 * CollapsingToolbarLayout状态栏(可折叠图片)
 *
 * @param activity
 * @param coordinatorLayout
 * @param appBarLayout
 * @param imageView
 * @param toolbar
 */
public static void setCollapsingToolbar(Activity activity, CoordinatorLayout coordinatorLayout,
                                        AppBarLayout appBarLayout, ImageView imageView, Toolbar toolbar) {
    if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
        coordinatorLayout.setFitsSystemWindows(false);
        appBarLayout.setFitsSystemWindows(false);
        imageView.setFitsSystemWindows(false);
        toolbar.setFitsSystemWindows(true);
        CollapsingToolbarLayout.LayoutParams lp = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams();
        lp.height = (int) (getStatusBarHeight(activity) +
                activity.getResources().getDimension(R.dimen.abc_action_ba



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 用户登录(Material Design + Data-Binding + MVP架构模式)实现,data-bindingmvp
  • 开发 Material Design+RxJava+Retrofit+MVP App 参考资料,rxjavaretrofit
  • 更简单更全的material design状态栏
  • Android Material Design NavigationView 及 Palette 颜色提取器,materialpalette

相关文章

  • 2017-05-26关于Android发送短信获取送达报告的问题,android发送短信
  • 2017-05-26Andorid Scrolling Activity(CoordinatorLayout详情),scrollingactivity
  • 2017-05-26Android WebView File域同源策略绕过漏洞浅析
  • 2017-05-26Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms(转载),unityengine.ui找不到
  • 2017-05-26android:Activity数据传递之静态变量
  • 2017-05-26三年0故障总结,提升代码质量的秘诀
  • 2017-05-26Android学习笔记-Button(按钮),android-button
  • 2017-05-26利用bintray-release插件上传到Bintray- HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]问题解决,bintrayrelease
  • 2017-05-26订单流程view,订单view
  • 2017-05-26WEB服务器、应用程序服务器、HTTP服务器区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android Studio插件,androidstudio插件
    • Android Studio 快捷键
    • Android开发免费类库和工具集合,android类库
    • 安卓开源项目周报0405,安卓开源项目0405
    • RadioButton与CheckBox,radiobutton
    • Android 开源库和项目 2,android开源库项目
    • android开发网络连接工具类(一),android工具类
    • 【同行说技术】Android程序员从小白到大神必读资料汇总(四),android资料汇总
    • Android5.0开发范例大全 读书笔记(五),android5.0范例
    • 硅谷新闻8--TabLayout替换ViewPagerIndicator,tablayoutindicator

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有