Android5.0和6.0之后新增的控件说明

Android自5.0后增加了不少新控件,帮助开发者实现了更酷更炫的UI效果。可是对于初学者来说,这些新控件的用法不像老控件那么简单,网上相关的使用介绍也不如老控件那样丰富,种种情况无疑加大了我们学习这些新控件的难度。为此,博主初步整理了Android在5.0和6.0之后的新增控件,及其对应的说明博文,给大家提供一个可资学习和借鉴的索引。 下面是新增控件的索引表格:

兼容包

名称

控件

引入版本

内核

水波图形

RippleDrawable

Android 5.0

矢量图形

VectorDrawable

Android 5.0

矢量动画

AnimatedVectorDrawable

Android 5.0

矢量动画监听器

AnimationCallback

Android 6.0

媒体投影管理器

MediaProjectionManager

Android 5.0

摄像头二代camera2

CameraManager

Android 5.0

CameraDevice

Android 5.0

CameraCaptureSession

Android 5.0

电话管理器增加双卡双待

TelephonyManager

Android 5.0

PDF文件渲染器

PdfRenderer

Android 5.0

任务调度器

JobScheduler

Android 5.0

任务服务

JobService

Android 5.0

v4

下拉刷新布局

SwipeRefreshLayout

Android 5.0

抽屉布局

DrawerLayout

Android 5.0

滑动面板布局

SlidingPaneLayout

Android 5.0

嵌套滚动视图

NestedScrollView

Android 5.0

appcompat-v7

工具栏

Toolbar

Android 5.0

recyclerview-v7

循环视图

RecyclerView

Android 5.0

线性布局管理器

LinearLayoutManager

Android 5.0

网格布局管理器

GridLayoutManager

Android 5.0

瀑布流网格布局管理器

StaggeredGridLayoutManager

Android 5.0

cardview-v7

卡片视图

CardView

Android 5.0

palette-v7

调色板

Palette

Android 5.0

design

提示条

Snackbar

Android 5.0

导航视图

NavigationView

Android 5.0

协调布局

CoordinatorLayout

Android 5.0

悬浮按钮

FloatingActionButton

Android 5.0

底部弹窗

BottomSheetBehavior

Android 6.0

应用栏布局

AppBarLayout

Android 5.0

可折叠工具栏布局

CollapsingToolbarLayout

Android 5.0

侧滑删除

SwipeDismissBehavior

Android 5.0

标签布局

TabLayout

Android 5.0

文本输入布局

TextInputLayout

Android 5.0

文本输入编辑框

TextInputEditText

Android 6.0

以上的新控件,在项目中使用的时候,可分为三大类: 1、第一类是内核提供的控件,位于SDK的android.jar中。 这个与系统版本有关,每个版本的android.jar是固定的,有在该内核中定义的控件才能正常调用,没在内核中定义的控件在运行时会扔出类找不到的异常。比如水波图形RippleDrawable和矢量图形VectorDrawable,这两个控件在Android5.0之后的系统内核中提供,所以只有系统版本不低于5.0的手机才能使用它们,运行4.*系统的手机是无法正常调用这两个控件的。 2、第二类是v4兼容库提供的控件,位于SDK的android-support-v4.jar中。 v4库默认会被编译进App的安装包,所以它不需要系统内核支持,可直接运行在4.0之后的所有系统上,并且App工程无需手工导入v4库。使用v4控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4.widget.SwipeRefreshLayout等等。 3、第三类是v7兼容库和design库,它们有各自的库工程,开发者要在App工程中手工导入用到的兼容库。 v7与design库导入App工程后,编译出来的App即可兼容4.*的系统。使用v7与design库的控件,类似于使用自定义控件,不但要在布局文件中引用完整路径的控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com/apk/res-auto"),然后方可使用这些控件的自定义属性。这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,如design库依赖于appcompat-v7库,部分design控件如NavigationView还依赖于recyclerview-v7库,所以若要正确使用design库的控件,往往得同时导入好几个相关的兼容库。 Android5.0和6.0之后补充了这么多新控件,自然有部分老控件变过时了,下面就列举部分新旧控件的替代关系: Toolbar:替代ActionBar RecyclerView:替代ListView和GridView NestedScrollView:替代ScrollView Snackbar:替代Toast FloatingActionButton:替代ImageButton TextInputEditText:替代EditText camera2家族:替代Camera 点此查看Android开发笔记的完整目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android知识点总结

Android材料设计之Behavior攻坚战

接触目标view时才会回调:onStartNestedScroll 加了layout_behavior的View是child

24720
来自专栏Android 开发者

[译] 为用户提供安全可靠的体验

我们不遗余力地关注 Google Play Store 的安全性和隐私,以确保 Android 用户拥有发现和安装他们喜欢的应用程序和游戏的积极体验。我们定期更...

11640
来自专栏做全栈攻城狮

用Android最火的快速开发框架XUtils,进行文件下载

更多原创教程,关注微信公众平台:做全栈攻城狮。及做全栈攻城狮官网:www.8z5.net

46030
来自专栏Debian社区

Wine 3.0发布:支持Android图形驱动、Direct3D 11、AES加密

2018 年伊始,Wine(Wine Is Not an Emulator) 项目发布了年度更新,释出了最新的 3.0 稳定版本。 Wine 是一个在 Linu...

17940
来自专栏编码前线

Android中的序列化:Parcelable和Serializable

13610
来自专栏非著名程序员

我今天浏览 Twitter 的时候,发现了一个好东西

今天很累,很累,本来不想写文章来,所以晚上回家之后,打开 Twitter 想浏览一下外国的新闻,顺便看看 NBA 的集锦来。可是,像我这么爱学习的一个人, Tw...

18020
来自专栏做全栈攻城狮

安卓开发-使用异步网络请求框架、多线程文件下载

相信对于前面的教程,大家已经很熟悉安卓网络编程了。这篇文章主要讲解一下异步网络编程和文件下载。学习编程重在写代码,只有自己的代码量上去了,自己才能完全理解。所以...

21740
来自专栏Android先生

Flutter组件学习(二)—— Image

上一节中,我们讲了 Flutter 中 Text 组件的一些用法以及 API,本节我们继续学习 Flutter 中的 Image 组件,同样先上图:

28230
来自专栏AndroidTv

前端入门7-JavaScript语法之相关术语声明正文-相关术语

作为一个前端小白,入门跟着这几个来源学习,感谢作者的分享,在其基础上,通过自己的理解,梳理出的知识点,或许有遗漏,或许有些理解是错误的,如有发现,欢迎指点下。

11230
来自专栏做全栈攻城狮

Android程序员 安卓7.0的新特性新功能 优化渲染来电

上篇介绍了安卓7.0中的多窗口支持、通知增强及即时编译的新特性。这次文章继续讲解android 7.0的新特性新功能.

12930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励