Android 各个Support Library介绍
参考:
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介绍相关推荐
- Material Design 开发利器:Android Design Support Library 介绍
Material Design 开发利器:Android Design Support Library 介绍 本文翻译自著名博客 Android Developers,原作者是 Ian Lake,点击 ...
- Android Design Support Library 中控件的使用简单介绍(一)
Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...
- Android Design Support Library初探-更新中
导读 这个兼容库容易和Google之前发布的 Android Support Library 22.1 混淆,两者的区别在于: Android Support Library 22.1 只是支持了一些 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.2——使用Android Testing Support Library进行测试...
问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接 ...
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
目前,我相信,没有任何 Android 开发者不知道材料设计的,因为它的设计在过去的一年震惊了世界,正式的变成了一个设计理念. 令人惊讶的是,在 Android 应用中材料设计是不容易实现的,因为材料 ...
- Android Support Library介绍
一.Android Support Library存在的原因 Android自第一代发布以来,它的版本更新迭代的速度可以说是非常快的,但是android又是一个移动操作系统,是面对所有的用户的,并不是 ...
- 如何更新android v7 support library,新手入门之Android Support Library | Soo Smart!
Support Library 这个支持包是一个一系列代码库,它提供了Android framework APIs的向后兼容的版本以及一些只有通过这个库包API才有的feature特性.每个Suppo ...
- android support design library eclipse,Eclipse下使用Android Design Support Library中的控件
我只测试了 Design效果的Login和Scrolling效果控件. 最下面奉上2个demo. 1.File\import导入sdk\extras\android\support\V7\appcom ...
- android design support library最新版,总结一下现在关于Design Support Library的几个博客...
关于Design Support Library,看似简单,其实不好掌握,一是因为它们都不是单独的控件,往往和主题以及周围的布局相关,偶合度有点高,二是因为这个兼容库有好些坑.因此我们只能在自己实践的 ...
最新文章
- 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(六)图像修补
- MQTT基础——Part 1. 认识MQTT
- 第一阶段站立会议08
- string:值类型?引用类型?[转]
- 聚焦WCF行为的扩展
- [WPF]程序随系统自启动
- ideajdk升级_JDK升级为13
- python移动文件中某个内容_如何在Python中移动文件
- Costomize Print Output
- 百度SEO站群爱客影院v3.5自动采集影视网站源码
- PS抠图滤镜Topaz ReMask白纱透明抠图法
- sql server安全管理-新建登录名-sql和混合身份验证模式#windows域和用户名的查找#不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
- Android WMS架构:WindowContainer树形组合模式-理论基础+实践结果
- LeetCode——5805. 最小未被占据椅子的编号(The Number of the Smallest Unoccupied Chair)[中等]——分析及代码(Java)
- 643 · 最长绝对文件路径
- 二维码活码的诞生、技术原理及使用场景
- JZ·7.8.2019
- LoadRunner常见的报错-1
- 剑指offer面试题(21-30)——java实现
- php空格符代码,php如何实现替换空格(代码)
热门文章
- mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6
- sql 语句as用法
- mysql查询表是否存在
- dw中css规则定义中文,Dreamweaver编辑CSS规则
- c语言字符串如何转换成gbk,C语言实现GBK/GB2312/五大码之间的转换(转)
- 基于MSP430F5529与LCD1602的测温仪
- 乒乓球廉价底板及普及套评测2
- 网络体系结构OSl/TCP(本质上是快递运输过程)
- 完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
- 欧空局10米土地利用数据下载教程