《Android群英传》——个人读书笔记
Google 于2014年推出了 Android5.0,现在 Android 已经出到了 9.0,显然现在写 5.0 有点迟,但因为是读书笔记,而且也有很多东西可以学习,所以依旧学习并记录。
12.1 Android 5.X UI 设计初步
- 采用全新的设计风格——Material Design 来统一整个Android系统的界面设计风格。
12.1.1 材料的形态模拟
- 这是 Material Design 中 最核心 也是 改变最大 的一个设计
12.1.2 更加真实的动画
- 可以有效的指引用户,提升用户的使用体验
12.1.3 大色块的使用
12.2 Material Design 主题
- Material Design 三种默认主题:
@android:style/Theme.Material(dark version)
@android:style/Theme.Material.Light(light version)
@android:style/Theme.Material.Light.DarkActionBar
- 提出了 Color Palette 的概念,让开发者可以自己设定系统区域的颜色,从而保持APP的颜色风格与系统的颜色风格相统一。
12.3 Palette
12.4 视图与阴影
- Material Design 一个很重要的特点就是拟物扁平化。
12.4.1 阴影效果
- 新增Z属性,对应垂直方向上的高度变化。
- Z 由两个部分组成:elevation、translationZ
-
elevation——静态成员,用以展示控件的高度
translationZ——用以实现动画效果 - 两者的关系:Z = elevation + translationZ
- elevation 的使用:android:elevation="XXXdp"
- 动态改变视图的高度:view.setTranslationZ(XXX);
12.5 Tinting 和 Clipping
- 操作图像的新功能:Tinting(着色)、Clipping(裁剪)
12.5.1 Tinting(着色)
- 只需要在XML文件中配置好 ting 和 tingMode 即可。
- Tint 通过修改图像的Alpha遮罩来修改图像的颜色,从而达到重新着色的目的。
12.5.2 Clipping(裁剪)
12.6 列表与卡片
12.6.1 RecyclerView
- RecyclerView 是 support-v7 包中的新组件,相比于 ListView,它同样拥有 item 回收复用的功能,而且还可以对 ViewHolder 进行封装,用户只要实现自己的 ViewHolder 就可以了,它会自动回收复用每一个 item。
- 使用 RecyclerView 需要添加依赖。RecyclerView 的重点使用与 ListView 一样,需要一个数据适配器来加载 View。
依赖:implementation 'com.android.support:cardview-v7:26.1.0'
12.6.2 CardView
- CardView 也是一个容器类布局,只是它提供了卡片这种样式。
注意事项:
1、需要添加依赖 implementation 'com.android.support:cardview-v7:26.1.0'
2、在布局中需要引入新的命名空间 xmlns:card_view=http://schemas.android.com/apk/res-auto
- 两个属性:
背景颜色:card_view:cardBackgroundColor="@color/cardview_background"
圆角的角度:card_view:cardCornerRadius="8dp"
12.7 Activity 过度动画
- Android5.X 提供了三种Translation类型:
1、进入:一个进入的过渡动画决定Activity中的所有的视图怎么进入屏幕
2、退出:一个退出的过渡动画决定Activity中的所有的视图怎么退出屏幕
3、共享元素:一个共享元素过度动画决定两个Activities之间的过度,怎么共享它们的视图。 - 进入和退出效果包括:
1、explode(分解)——从屏幕中间进或出,移动视图
2、slide(滑动)——从屏幕边缘进或出,移动视图
3、fade(淡出)——通过改变屏幕上视图的不透明度达到添加或者移除视图 - 共享元素包括:
1、changeBounds——改变目标视图的布局边界
2、changeClipBounds——裁剪目标视图边界
3、changeTransform——改变目标视图的缩放比例和旋转角度
4、changeImageTransform——改变目标图片的大小和缩放比例
12.8 Material Design 动画效果
12.8.1 Ripple 效果
波纹效果
// 波纹有边界
android:background="?android:attr/selectableItemBackground"
// 波纹超出边界
android:background="?android:attr/selectableItemBackgroundBorderles"
- 波纹有边界是指波纹被限制在控件的边界中,而波纹超出边界则是波纹不会限制在控件边界中,会呈圆形散发出去。
12.8.2 Circular Reveal
- 使用简单,主要设置几个关键点的坐标:
1、centerX——动画开始的中心点X
2、centerY——动画开始的中心点Y
3、startRadius——动画开始半径
4、endRadius——动画结束半径
12.8.3 View state changes Animation
- StateListAnimator
- animater-selector
12.9 Toolbar
- Toolbar与Actionbar最大的区别就是Toolbar更加自由、更加可控。
使用Toolbar的条件:必须引入 appcompat-v7 支持,并设置主题为NoActionBar
12.10 Notification
12.10.1 基本的 Notification
12.10.2 折叠式 Notification
- 常用于显示长文本。它拥有两个视图状态,一个是普通状态下的视图,另一个是展开状态下的视图。
12.10.3 悬挂式 Notification
- Android5.0中新增的方式
12.10.4 显示等级的 Notification
- Android5.X中新增的方式,将Notification分成了三个等级:
1、VISIBILIT_PRIVATE——只有 当没有锁屏的情况下才会显示
2、VISIBILIT_PUBLIC——任何情况下都会显示
3、VISIBILIT_SECRET——在pin、password等安全锁和没有锁屏的情况下才能够显示