Hey,好久不见。今天遇到一个问题,想要把Status Bar 和 Tool Bar的颜色弄成一样的,或者是类似的,例如Material Design:

图中Status Bar颜色比Tool Bar稍微深了一些,也很有层次。

在Android Studio1.4提供的模板的styles.xml里面,其实已经实现了这样的方法:

    <!-- Base application theme. -->
<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>
</style>

这里的colorPrimary对应Tool Bar的颜色,colorPrimayDark对应Status Bar的颜色。这两种颜色可以在Values-colors.xml中自定义。

也就是说,只要修改这两个颜色,就能轻松实现上图的MD效果。

我设置的minSdk level是15(4.0),这样定义没有提示不兼容,但是不知道在5.0以下机器上能否出效果。但是,如果采用下面两个特性(结尾的链接里的),就会明确要求minSdk 19。

<!-- 设置导航栏和状态栏成半透明的 -->
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>

比较奇怪的是,虽然我们可以在app_bar_main.xml中看到背景颜色被设成了colorPrimay,

<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />

但我全局搜索了一下,并没有发现哪里有调用colorPrimaryDark。这也很好理解,毕竟没有一个组件是Status Bar可以供你调用。我猜想这是一个特殊的关键字,意即colorPrimaryDark是一个约定的词,在特定版本会被Status Bar自动地使用。

很多其他的应用,比如知乎,他的Status Bar其实跟Tool Bar是一样的颜色,它采取的是Translucent  Bar透明状态栏的策略。注意,国外说的沉浸(Immersive)跟这个有区别。

其他可能帮到你的资料:

安卓4.4以上修改状态栏颜色:http://blog.csdn.net/koche/article/details/46766963

知乎:http://www.zhihu.com/question/27177235

Material调色盘:http://www.materialpalette.com/red/pink

最新文章

  1. css居中解决方案
  2. java12-6 冒泡排序法和选择排序法
  3. java中String的常用方法
  4. history对象
  5. xUtils3的简单介绍
  6. 《c程序设计语言》读书笔记--统计字符数
  7. The 6th Zhejiang Provincial Collegiate Programming Contest-&gt;ProblemK:K-Nice
  8. 异步编程中使用帮助类来实现Thread.Start()的示例
  9. SQL Server 查看正在运行的事务信息的 2 种方法。
  10. Windows Phone 8初学者开发—第4部分:XAML简介
  11. ajax实现用户名校验的传统和jquery的$.post方式
  12. 深入了解SQL的四种连接&amp;不然要命的!
  13. NetToPLCSIM 连接PLCSIM 和Kepware 联合仿真
  14. .NetCore2.1 WebAPI新增Swagger插件
  15. LaTeX 一个段落加边框
  16. ios外部链接或者app唤起自己的app
  17. Python学习—数据库篇之初识mysql
  18. 使用模块PIL 生成 随机验证码
  19. WPF GridView的列宽度设置为按比例分配
  20. PTA2016天梯赛决赛3小时训练赛

热门文章

  1. Java HashMap学习笔记
  2. C/C++程序到内存分配(转)
  3. js逻辑非同时两次使用 !!null
  4. nginx-location rewrite
  5. redis 3.0.1 在CentOS上的安装
  6. python訪问redis
  7. HTTPS那些事儿(一)-HTTPS原理
  8. kubernetes调度之污点(taint)和容忍(toleration)
  9. xcode打包 提交到iTunesConnect
  10. .Net 中的反射(动态创建类型实例)