参考:

http://zmywly8866.github.io/2015/10/09/android-support-library.html

V4 Support Library

这个包的名字是:“android-support-v4.jar”,是为Android 1.6(API版本为4)及以上的版本设计的,它包含大部分高版本中有而低版本中没有的API,包括application components、user interface features、accessibility、data handling、network connectivity、and programming utilities  

V7 SupportLibraries

 针对Android 2.1(API Level 7)及以上的版本谷歌提供了一系列的support包,这些support包各自对应着特定的功能,每一个都可以单独地被引用。

V7 appcompat library

这个包的主要作用是为了在低版本实现Android的Holo风格界面而引入的,主要包括ActionBar、AppCompat等类和主题,它是一个依赖工程而不是jar包。

注意:这个包需要依赖android-support-v4.jar,如果你使用的是Eclipse或者Ant编译你的APP,确保你在使用这个依赖包时集成了android-support-v4.jar这个jar包。

v7 cardview library

一个在Android 5.0才被引入的卡片布局support包。

v7 gridlayout library

一个支持网格布局的support包。

v7mediarouter library

一个用于设备间音频、视频交换显示的support包。

v7 palette library

一个可以实现页面的颜色动态变换的support包,Palette是这个support包的核心类。

v7 recyclerview library

核心类是RecyclerView,用于替换ListView、GridView等需要依赖Adapter的View,具体可以查阅RecyclerView方面的资料。

v7 Preference Support Library

一个用于支持各种控件存储配置数据的support包。

v8 renderscript library

一个用于渲染脚本的support包。

v13 Support Library

这个包的作用主要是为Android3.2(API Level 13)及以上的系统提供更多地Fragment特性支持,使用它的原因在于,android-support-v4.jar中虽然也对Fragment做了支持,由于要兼容低版本,导致他是自行实现的Fragment效果,在高版本的Fragment的一些特性丢失了,而对于v13以上的sdk版本,我们可以使用更加有效,特性更多的代码。这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。

v17 Leanback Library

一个主要作用是用于支持电视设备的support包,为电视设备提供了很多组件,比如:BroweFragment、DetailsFragment、PlaybackOverlayFragment、SearchFragment等。

Android Support Library 23.2

参考资料:

Android Support Library 23.2 中文版

Android Support Library 23.2

本周 Android Support 库发布了 23.2新版本,该版本包含了几个新功能。
本次更新主要涉及:

1.Support Vector Drawables and Animated Vector Drawables

2.AppCompat DayNight theme

3.Design Support Library: Bottom Sheets

4.Support v4: MediaBrowserServiceCompat

5.RecyclerView

6.Custom Tabs

7.Leanback for Android TV

支持 Vector Drawables 和 Animated Vector Drawables

使用矢量图的好处之一就是不用出多个图片(hdpi,xhdpi 等)了, 只需要一个矢量图即可涵盖所有屏幕密度的需要。矢量图在Android 5.0 才开始支持,使用23.2 support 库中的support-vector-drawable 和animated-vector-drawable 可以在之前的版本支持矢量图了。之前Android studio在 build的时候, 通过生成 PNG图片来支持矢量图,要使用 23.2版本中的矢量图功能,需要禁用之前版本的功能。如果你使用的 gradle插件为 2.0+版本,则通过如下方式来启用新功能:

// Gradle Plugin 2.0+
android {  defaultConfig {  vectorDrawables.useSupportLibrary = true  }
}  

如果你使用 1.5 的 gradle 插件,则需要通过如下的方式:

/ Gradle Plugin 1.5  android {  defaultConfig {  generatedDensities = []  }  // This is handled for you by the 2.0+ Gradle Plugin  aaptOptions {  additionalParameters "--no-version-vectors"  }  }  

然后就可以使用 VectorDrawableCompat 和 AnimatedVectorDrawableCompat 了,VectorDrawableCompat最低可以在 API 7 版本上使用, 而 AnimatedVectorDrawableCompat需要 API 11 版本。目前通过 AppCompat 库只支持 ImageView和其子类(例如 ImageButton和 FloatingActionButton)可以在布局文件中直接使用 矢量图,支持方式为使用 app:srcCompat来替代 android:src

如果在代码中设置矢量图,则和之前一样,可以直接使用setImageResource() 。使用AppCompat 和app:srcCompat 是使用矢量图最简单的方式。

在5.0之前的版本除了 app:srcCompat 属性之外,其他属性都不支持矢量图,例如TextView 的android:drawableLeft ,你如果在该属性上使用矢量图,则在5.0之前的版本上会crash。但是,你如果把矢量图放到其他Drawable 容器中,再使用这个Drawable 容器可以支持5.0之前的版本,支持的容器有StateListDrawable, InsetDrawable, LayerDrawable, LevelListDrawable,和 RotateDrawable。

你可以在 Drawable 容器中应用你的矢量图,例如通过 StateListDrawable 来引用矢量图,然后在TextView 的android:drawableLeft 中使用这个StateListDrawable,这样在5.0 之前的版本也可以使用矢量图了。

这样每个矢量图都需要放到一个 Drawable 容器中,可能比较繁琐,如果你使用 Data Binding 框架,则还可以又一个相对方便的方式。

定义一个 BindingAdapter, 该 BindingAdapter 把一个Drawable id绑定到 TextView的 drawableTop,

然后在 布局文件中,使用这个自定义的 BindingAdapter,

AppCompat DayNight 主题

除了支持矢量图以外,23.2版本中还保护了一个新的Theme.AppCompat.DayNight主题。

在API 14之前的版本,DayNight主题和其子主题(DayNight.NoActionBar, DayNight.DarkActionBar, DayNight.Dialog等)都使用白色主题替代。在14+版本,则 DayNight可以使应用很容易的同时支持白色和黑色主题,并且可以根据用户当前的时间自动切换主题,白天使用白色主题,夜晚使用黑色主题,是不是很酷。

默认情况下系统使用UiModeManager.getNightMode()来判断是否使用黑色主题。在AppCompatDelegate中可以重写该方法。通过函数AppCompatDelegate.setDefaultNightMode()可以设置整个应用的模式,也可以通过getDelegate().setLocalNightMode()函数来修改当前 Activity 和Dialog 的主题。

如果使用AppCompatDelegate.MODE_NIGHT_AUTO 模式,系统会根据当前的时间和设备最后已知的位置(需要您的应用具有位置权限)来自动切换主题。

如果你使用了DayNight ,请全面测试你的应用在每个主题都可以使用,特别是文本和图标的颜色,如果你使用标准的TextAppearance.AppCompat来设置文字样式,或者从android:textColorPrimary 来获取颜色,则系统会自动切换到合适的颜色。

除了这两个比较大的新功能以外,23.2 版本中还有如下改动,详细情况请参考这里

·Design 库中新加一个bottom sheet控件。

·Support v4 的MediaBrowserServiceCompat

·RecyclerView 的自动计算本身大小的功能,这样RecyclerView就可以根据其内容的大小来设置自己的尺寸了。

·Custom Tabs更加好用。

·Leanback for Android TV 中新的 GuidedStepFragment,更加方便的创建新手指引。

Android 各个Support Library介绍相关推荐

  1. Material Design 开发利器:Android Design Support Library 介绍

    Material Design 开发利器:Android Design Support Library 介绍 本文翻译自著名博客 Android Developers,原作者是 Ian Lake,点击 ...

  2. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

  3. Android Design Support Library初探-更新中

    导读 这个兼容库容易和Google之前发布的 Android Support Library 22.1 混淆,两者的区别在于: Android Support Library 22.1 只是支持了一些 ...

  4. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.2——使用Android Testing Support Library进行测试...

    问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接 ...

  5. Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏

    目前,我相信,没有任何 Android 开发者不知道材料设计的,因为它的设计在过去的一年震惊了世界,正式的变成了一个设计理念. 令人惊讶的是,在 Android 应用中材料设计是不容易实现的,因为材料 ...

  6. Android Support Library介绍

    一.Android Support Library存在的原因 Android自第一代发布以来,它的版本更新迭代的速度可以说是非常快的,但是android又是一个移动操作系统,是面对所有的用户的,并不是 ...

  7. 如何更新android v7 support library,新手入门之Android Support Library | Soo Smart!

    Support Library 这个支持包是一个一系列代码库,它提供了Android framework APIs的向后兼容的版本以及一些只有通过这个库包API才有的feature特性.每个Suppo ...

  8. android support design library eclipse,Eclipse下使用Android Design Support Library中的控件

    我只测试了 Design效果的Login和Scrolling效果控件. 最下面奉上2个demo. 1.File\import导入sdk\extras\android\support\V7\appcom ...

  9. android design support library最新版,总结一下现在关于Design Support Library的几个博客...

    关于Design Support Library,看似简单,其实不好掌握,一是因为它们都不是单独的控件,往往和主题以及周围的布局相关,偶合度有点高,二是因为这个兼容库有好些坑.因此我们只能在自己实践的 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(六)图像修补
  2. MQTT基础——Part 1. 认识MQTT
  3. 第一阶段站立会议08
  4. string:值类型?引用类型?[转]
  5. 聚焦WCF行为的扩展
  6. [WPF]程序随系统自启动
  7. ideajdk升级_JDK升级为13
  8. python移动文件中某个内容_如何在Python中移动文件
  9. Costomize Print Output
  10. 百度SEO站群爱客影院v3.5自动采集影视网站源码
  11. PS抠图滤镜Topaz ReMask白纱透明抠图法
  12. sql server安全管理-新建登录名-sql和混合身份验证模式#windows域和用户名的查找#不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
  13. Android WMS架构:WindowContainer树形组合模式-理论基础+实践结果
  14. LeetCode——5805. 最小未被占据椅子的编号(The Number of the Smallest Unoccupied Chair)[中等]——分析及代码(Java)
  15. 643 · 最长绝对文件路径
  16. 二维码活码的诞生、技术原理及使用场景
  17. JZ·7.8.2019
  18. LoadRunner常见的报错-1
  19. 剑指offer面试题(21-30)——java实现
  20. php空格符代码,php如何实现替换空格(代码)

热门文章

  1. mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6
  2. sql 语句as用法
  3. mysql查询表是否存在
  4. dw中css规则定义中文,Dreamweaver编辑CSS规则
  5. c语言字符串如何转换成gbk,C语言实现GBK/GB2312/五大码之间的转换(转)
  6. 基于MSP430F5529与LCD1602的测温仪
  7. 乒乓球廉价底板及普及套评测2
  8. 网络体系结构OSl/TCP(本质上是快递运输过程)
  9. 完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
  10. 欧空局10米土地利用数据下载教程