文章标题

三分钟看完Android Support Library 22.1的新特性

这里是英文原文博客
俗语云“无码胜有码”,虽然我们并不是真的推荐完全不写代码,但是代码对你的app而言应该有独立的价值,而不是将日常那些支离破碎的代码拷贝在一起。Android Support Library就是帮你完成各种细小功能的最佳资源之一。

最新版本的Support库加入和修改了很多组件,包括了Support V4,AppCompat,Leanback,RecyclerView,Palette以及Renderscript库。从AppCompatActivity 、 AppCompatDialog 到新的Android TV开发指导,总之我们有足够的理由对这个新版本的发布感到欣喜。

Support V4
Support V4库作为安卓兼容库中最基本的部分,包含了许多对向上兼容有用的类。 DrawableCompat 让drawable 着色兼容至api 4,现在只需通过DrawableCompat.wrap(Drawable) 将Drawable封装一下,可以直接使用 setTint(), setTintList(), 和 setTintMode() 方法了,不再需要为不同的颜色去维护多个drawable。

另外ColorUtils 这个工具还提供了一些Palette 内部的功能,让你更好的处理颜色的问题。比如计算两个颜色之间的对比度,决定最小的透明度来获得更好的阅读效果(比如两个相近的颜色会干扰阅读,降低某个的透明度增强视觉效果)。还可以将颜色转换成相应的HSL模式。

插值器(Interpolator)是动画系统中非常重要的部分。它控制着动画的节奏(比如加速还是减速等)。Lollipop在android.R.interpolator中加入了几个interpolator,包括fast_out_linear_in, fast_out_slow_in,和linear_out_slow_in:对于产生逼真的物理效果至关重要。现在我们可以通过使用兼容包中的FastOutLinearInInterpolator, FastOutSlowInInterpolator, LinearOutSlowInInterpolator类来达到同样的效果。除此之外,我们还可以使用PathInterpolatorCompat 来制造二次方或三次方的贝塞尔曲线动画。

这个版本还将Space控件从GridLayout中抽取出来放到Support V4中,作为独立的控件。Space控件用于在两个组件之间制造间隙,是一个轻量级的view。

AppCompat
AppCompat最开始扮演的是一个不起眼但很重要的角色:让API 7也能也可以使用actionbar。而在AppCompat 21版本中,AppCompat担当起了更多的责任:为api 7+的设备带来material color palette ,widget着色,Toolbar以及其他功能。因此ActionBarActivity这个名称已经不能完整的体现AppCompat的作用了。在这个版本中,ActionBarActivity已经不推荐,取而代之的新宠是AppCompatActivity 。但是,这并不只是命名的改变,内部实现原理其实是通过AppCompatDelegate 来完成的。AppCompatDelegate是一个可以放在任意Activity中,并且回调相应生命周期的类,在不使用AppCompatActivity的情况下,也可以得到一致的主题与颜色(虽然使用AppCompatActivity仍然是最简单的方法)。

AppCompatDelegate还用在了AppCompatDialog类中,让我们可以实现material design的对话框。你应该使用过AlertDialog ,幸运的是在这个版本的 support.v7.app.AlertDialog中,集成了AppCompatDialog的所有优点,但是api仍然和以前一样。

AppCompat的控件自动着色功能对于app具有一致的体验与认可度是非常有用的。这是自动完成的,你只要用AppCompatButton替代Button,AppCompatTextView替代TextView ,等等。 下面是具有此功能的AppCompat控件的完整列表:

AppCompatAutoCompleteTextView

AppCompatButton

AppCompatCheckBox

AppCompatCheckedTextView

AppCompatEditText

AppCompatMultiAutoCompleteTextView

AppCompatRadioButton

AppCompatRatingBar

AppCompatSpinner

AppCompatTextView

Lollipop中,可以使用android:theme属性在xml中重写一个view的主题 ,这对于light风格的Activity中有深色actionbar的类似场景很有用。现在AppCompat让你可以在Toolbars中使用android:theme属性(注意是android:theme而不是之前的app:theme),我们甚至为所有view都提供了android:theme的支持(API 11+)。
RecyclerView
除了修复一些bug之外,这个版本好提供了新的数据结构SortedList。这个集合让你轻松维护一个可排序的自定义对象列表,在数据变化的时候向RecyclerView.Adapter分发change事件:维护RecyclerView自带的item的added/deleted/moved/changed动画。
另外,SortedList还支持将所有的change绑在一起,只对Adapter分发一个操作,保证在大量item改变的时候获得最佳体验。

Palette
Palette现在使用Builder模式来实例化,而不是之前直接调用Palette.generate(Bitmap)。使用Palette.from(Bitmap)来获得Palette.Builder。你可以改变生成色彩的最大数目,设置image的最大尺寸来获得Palette而不是之前通过调用generate()或者generateAsync()来获得Swatch。

Renderscript
Renderscript帮助你获得强大的计算潜能,Support Library还制作了几个内置的script,称为script intrinsics ,可以在API 8+设备上使用。这个版本改进了稳定性与性能。可以检测Renderscript功能是否可以被使用-以保证选择最快最稳定的实现。另这个intrinsics中还添加了 ScriptIntrinsicHistogram和ScriptIntrinsicResize。

-Renderscript我也不熟悉,翻译很勉强。

SDK可以下载了
现在是开始使用Android Support Library的最好时机。你可以今天就开始使用sdk Manager下载Android Support Library。

关于Android Support Library的更多api,请访问开发者网站的Support Library 章节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值