values、values-v19、values-v21 中包含了一些自定义的 theme,后面用到的时候会顺带讲解。...下面有几个代码里面需要注意的地方: 我们在使用 Toolbar 时候需要先隐藏掉系统原先的导航栏,网上很多人都说给Activity设置一个NoActionBar的Theme。...有网友说如果把自定义控件换成Button,你会发现Button默认的文字颜色也变成了红色,我在4.4.2的模拟器上并没有发现此问题,暂且记录下。.../> menu> values/styles.xml、 values-v19/styles.xml、 values-v21/styles.xml values/styles.xml values-v21/styles.xml name="Theme.ToolBar.ZhiHu"
零、前言 这是两个比较小的点,放在一起说一下: 沉浸标题栏:现在基本上都用沉浸标题栏了,不然最顶的一小块跟app风格不搭 TextInputLayout:包裹一个EditeText,多用于登陆验证的输入框...沉浸标题栏.png 由于从5.0开始才有,以下会崩掉,所以需要适配处理 values-v19/styles.xml 无效果,仅防止低版本崩掉 true values-v21/styles.xml values-v21 5.0 以上提供了 setStatusBarColor() 方法设置状态栏颜色。...--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--> android:statusBarColor">@android:color
/transparent; 2.3 创建一个values-v21目录;values-v21目录下创建一个styles.xml文件; 编写: android:statusBarCoIor这个属性是从API 21,即Android5.0系统开始才有的,之前的系统无法指定这个属性。...那么,系统差异型的功能实现至此开始; 右击res目录—>New—>Directory,创建一个values-v21目录,然后右击values-v21目录—>New —>Values resource...然后在FruitAcuvityTheme中将状态栏的颜色指定成透明色, 由于values-v21目录是只有Android5.0及以上的系统才会去读取的, 因此这么声明是没有问题的。...5.0之前的版本会加载这里的FruitActivityTheme,也就是间接地使用了默认的AppTheme主题; 5.0之后的版本或许也加载这里的FruitActivityTheme,但同时读取values-v21
样式层次结构 在选择如何为应用设置样式时,需要考虑样式的层次结构。...其实我们只需要在合适的版本上去新增styles.xml文件,然后在此基础上去添加我们想要的额外的样式就可以了。...比如,我们想使用在5.0手机样式上的功能,可以新建一个values-v21/styles.xml,然后在此基础上去添加。...in the manifest file --> 然后,在 res/values-v21...-- extend the base theme to add styles available only with API level 21+ --> <style name="AppTheme
values、values-v19、values-v21 中包含了一些自定义的 theme,后面用到的时候会顺带讲解。 我们先来看一下 ToolbarActivity 的运行效果 ?...我猜测是因为这个控件是兼容版的控件,用 android:xxx 设置无效是的这些属性是在兼容包中,不在默认的Android SDK中,所以我们需要额外的引入。...styles.xml 中的 Theme.ToolBar.ZhiHu,给 Toolbar 设置android:theme用的 ? 最终得到下面这样的效果 ?...的特性结合起来,最终改进成下面的效果(附上 Android4.4 和 5.1 上的运行效果)。...Android4.4上改进版的知乎主页 ? Android5.1上改进版的知乎主页 总结 关于 Toolbar 的使用就介绍到此,本来是怀着很简单就可以上手的心态来使用,结果发现还是有很多坑需要填。
我所采取的方法则是建立多个SDK版本的values文件夹,系统会根据SDK的版本选择合适的Theme进行设置。大家可以看到上面我的工程里面有values、values-v19、values-v21。...---- 背景图片延伸至系统栏 三步设置 第一步:设置不同版本下style.xml 在values、values-v19、values-v21的style.xml都设置一个 Translucent System...">@android:color/transparent style> 上面需要注意的地方是,无论你在哪个SDK版本的values目录下,设置了主题,都应该在最基本的values下设置一个同名的主题...这样才能确保你的app能够正常运行在 Android 4.4 以下的设备。否则,肯定会报找不到Theme的错误。...> android:statusBarColor">@color/color_31c27c style> values-v21/style.xml中的android
通常我们新建一个项目的时候在 res/values/styles.xml 中会有下面的定义 Application 的主题样式。 values-v21/themes_base.xml 同时由于部分属性的版本兼容问题,为了避免添加多个版本的 styles 文件,可以省略 android: 命名空间...也就是在这个版本你直接可以通过修改这个属性来修改状态栏的颜色。...这种设置和 Button 的 android:background 所不同的是,在 Android5.0 或者更高的版本上使用 colorButtonNormal 的时候会依然保持阴影和 Ripple...然后把这个样式给 Titlbar设置上,这样效果就合适了。
,应该如此文档所述,将状态栏设置成半透明(API 19)或者透明(API 21)的。...-- res/values-v21/styles.xml --> android...transparent 通过像上面那样启用系统栏的半透明效果,你的布局会将内容填充到系统栏后面,因此你还必须在那些不想被系统栏覆盖的布局上使用 android:fitsSystemWindow...你可以阅读本文来进一步讨论如何模拟 Google Map 滑动期间状态改变的效果。 为了得到预期的效果可能需要相当多的实验。对于某些特定的用例,你可能会发现下面列出的第三方库是一种更简单的选择。...你将需要像这个示例中展示的那样用 NestedScrollView 来代替。
Design的译文,相比之前Google在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的。...所以作为一个Android开发者怎么能不紧跟Google的步伐呢,下面就来通过Toolbar和Palette这两个在API21后推出的东西,当然Google已经把它们放到到v7库里了,使用Material...还有我们可以在values-v21给API21的系统版本设置默认的底部导航栏默认的颜色: /res/values-v21/styles.xml android="http... >= 21) { Window window = getWindow(); // 很明显,这两货是新API才有的。 ...,你只需在它提取完成的回调方法了获取各种提取到的颜色设置给相应的view就行了。
的译文,相比之前Google在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的。...所以作为一个Android开发者怎么能不紧跟Google的步伐呢,下面就来通过Toolbar和Palette这两个在API21后推出的东西,当然Google已经把它们放到到v7库里了,使用Material...还有我们可以在values-v21给API21的系统版本设置默认的底部导航栏默认的颜色: /res/values-v21/styles.xml android="http...>= 21) { Window window = getWindow(); // 很明显,这两货是新API才有的。...>= 21) { Window window = getWindow(); // 很明显,这两货是新API才有的。
values、values-v19、values-v21 中包含了一些自定义的 theme,后面用到的时候会顺带讲解。...我猜测是因为这个控件是兼容版的控件,用 android:xxx 设置无效是的这些属性是在兼容包中,不在默认的Android SDK中,所以我们需要额外的引入。...先来看下知乎主页的效果 Android 5.1上知乎主页效果图 如果前面的内容你看明白,想撸出这个界面无非是几分钟的事情,下面就直接上代码,不做赘述了。...的特性结合起来,最终改进成下面的效果(附上 Android4.4 和 5.1 上的运行效果)。...Android4.4上改进版的知乎主页 Android5.1上改进版的知乎主页 如果你还不知道 Translucent System Bar 的特性怎么使用,请查看我的上一篇文章:Translucent
Android-4.3 表示通过4.3(API18)的版本来编译,则将调用sdk/platforms/android-18/下的android.jar Android Dependencies 安卓依赖的第三方支持库...,而android-support-v4.jar则位于 sdk/extras/android/support/v4目录下.v4表示只要版本在Android1.6(API4)以上的,都支持. assets...中文翻译过来叫资产,放置一些文件资源,这些文件会被原封不动打包到apk里面,并且不会在R.java文件下生成相应的标记 bin 该目录用于存放生成的目标文件,例如Java的二进制文件、资源打包文件(....11+的设备(3.0 +)上,用该目录下的styles.xml代替res/values/styles.xml values-v14:代表在API 14+的设备(4.0 +)上,用该目录下的styles.xml...代替res/values/styles.xml AndroidManifest.xml 应用清单,包含了APP的配置信息(软件包名,版本号),系统需要根据里面的内容运行APP的代码,显示界面(描述应用的各个组件
样式的定义 Android的样式一般定义在res/values/styles.xml文件中,其中有一个根元素,而具体的每种样式定义则是通过下的子标签...Android系统本身也拆分为多个文件存放的,如下列表全都是样式文件: styles.xml styles_device_defaults.xml styles_holo.xml styles_leanback.xml...但样式的用法不只是用于单个View,也能用于Activity或整个Application,这时候需要在相应的标签或标签里设置android:theme属性,...,目标API level一般为10或以下 themes_holo.xml:从API level 11添加的主题 themes_device_defaults.xml:从API level 14添加的主题...themes_material.xml:从API level 21添加的主题 themes_micro.xml:应该是用于Android Wear的主题 themes_leanback.xml: 还不清楚什么用
前言 本文适合有一定android基础想初步了解学习web前端开发的朋友。以下均为个人理解,很多可能不是百分百就是完全能类比过去,只是比较相似,希望能帮助大家比较好地理解。...我们先来说说html,其实html比较像是固定网页的整体框架和一些静态固定的布局。其他一些动态的布局就需要结果js和css来实现。特别像android中的布局文件。下面我们结合例子中的代码来看看。...css整体来说,主要负责html中的样式和动画,这个就比较像是android中的styles.xml + anim中的.xml文件。...,其实都是可以赋值给var的,所以大家在命名的时候,需要注意命名规则。...希望本文对于刚想开始了解html,而且对android有一定开发经验的同学有所帮助。
CollapsingToolbarLayout在 CollapsingToolbarLayout 的 Children 布局上,可以按照 FrameLayout 的属性来拍版,因为它本身继承于 FrameLayout...所以,CollapsingToolbarLayout 的使用一定离不开 AppBarLayout 和 Toolbar,并且作为 AppBarLayout 的直接子视图使用。...表示控件向上折叠退出并以最小高度停留在顶部;前面介绍CollapsingToolbarLayout属性时介绍到了statusBarScrim的使用,其实也可以通过android:fitsSystemWindows...和values-v21中style样式的statusBarColor和windowDrawsSystemBarBackgrounds属性来完成状态栏的背景色变化,详情参考源码即可;通过layout_anchor...示例源码我在GitHub上建立了一个Repository,用来存放整个Android Material Design系列控件的学习案例,会伴随着文章逐渐更新完善,欢迎大家补充交流, 代码地址:github.com
提示: 为了向一系列的Android版本提供最棒的特性和功能, 你应该在你的应用中使用 Android 支持库, 它能让你可以使用在老版本上使用最新平台的API ....设置最低和目标API级别 ---- AndroidManifest.xml 文件描述了有关你的应用及识别其所支持的Android版本的详细信息....在你的应用中可以使用这些编码来构建确保依赖于高级别API的代码只在这些API在这个系统上是可用才被执行的条件....此后想ActionBar添加菜单项时,你需要在你的菜单资源XML中设置 android:showAsAction="ifRoom"....android:theme="@android:style/Theme.Translucent"> 应用定义在 /res/values/styles.xml 中的属于你自己的定制样式
如下所示: AndroidManifext.xml android:enabled="@bool/until_api_21"> /src/main/res/values/flags.xml... api_21">true /src/main/res/values-v21/flags.xml... api_21">false 建议部分 1,在Android 4.4以上设备中,避免使用『读取 /...如果应用需要兼容4.4以下的Android版本,建议以如下版本限定的方式声明外部存储权限,并在旧版本系统上直接读写外部存储,兼顾Android 4.4前后版本的权限约束。...如果确有特殊原因需要将数据写入外部存储,Context.getExternalFilesDir()、 Context.getExternalCacheDir() 等相关API所返回的路径从Android
高级: 定位在高级工程师,是因为我认为现在国内 Android 开发最严重的瓶颈在于高级工程师们的水平普遍遇到了瓶颈。...这些或是带头大哥或是光杆司令的 Android 工程师,水平一般都是不错的,但很多人却也遇到了技术瓶颈,在一个还有一定上升空间的位置就有点摸到了天花板的感觉。而且,这还不是个例,而是普遍现象。...而如果老大们的技术突破了,他们不仅可以帮助公司解决问题,还能带领手下的小弟们一起进步,这,将是多么美好的事啊! 所以,我的目标读者定位在「高级」。...你看了我的内容,得到鼓励,不是我的目标;打开了视野发现了各种新奇的黑科技,不是我的目标;我的目标只有一个:你在看了我的文章后,技术水平提高了半个或一个或更多的等级。...手册内容不多,无法囊括任何一个人的技术辐射角,但却包含了了大多数人的必备基础。也许你现在就恰好需要,也许你现在还没空研究,但你一定会需要它。而当你需要用到的时候,这份手册就在这里,随用随看。
Android 12 更新了已有的 Widget API,重塑了微件的设计来契合 "Material You" 设计语言。...在第二篇文章中,我们将了解新的 API,通过它们可以使微件更加个性化、响应更灵敏并且更具互动性。 视觉变化 对于用户来说,毫无疑问最直观的视觉变化是风格和设计上的改变。...values/styles.xml 如果您的 minTargetSDK 小于 21,那么您需要提供适用于 SDK 版本 21 的 style,因为在 可绘制对象 上使用 android:attr.../colorBackground 需要 SDK 版本至少为 21。...该过渡效果是由系统自动处理的,并且在旧版本的 Android 上不会出现。要启用该效果,您需要在微件布局根元素上指定一个 id,并设置它的值为 android:id/background。
如果项目比较小的话: app——Application Activity Fragment Presenter等的顶级父类 config——API,常量表等 model——数据层 entities——数据模型...1.先在color.xml中写好需要的颜色: #ff5722 @color/Orange 在res目录下,创建一个values-v21...4.配置Gradle 某些SDK运行时需要检查签名是否正确。所以在debug模式时也必须用正式KEY签名。而把签名放进版本控制不是明智的做法。...文件同级目录新建signing.properties文件,里面填入你的key的相应信息 KEYSTORE_FILE = C:\\Users\\Mr.Jude\\Documents\\Android\\HelloWorld.jks