DrawableCompat和Drawable之间的区别

时间:2015-04-25 17:22:19

标签: android appcompat-v7-r22.1

几天前,我发布了支持库版本 v22.1.0 以及我见过DrawableCompat的新内容。

现在我的问题是DrawableCompat与普通Drawable有什么区别,它带来了什么好处以及何时以及如何使用它。

我已阅读Chris Banes' blog,但缺乏正确解释这是什么以及它对开发人员有用的方法。

1 个答案:

答案 0 :(得分:4)

引用相关博文:

  

Lollipop中添加的Drawable着色方法对于让您动态着色资产非常有用。

此处,着色是指Theme.Material / Theme.AppCompat使用灰度可绘制和应用色调(如colorPrimarycolorAccent)的方法,将它们绑定到自定义主题中一个应用程序这用于许多地方,特别是许多看到强调色的地方。

继续撰写博文:

  

AppCompat在v21支持库中有自己的实现,现在我们已经将它提取到support-v4中的DrawableCompat中供所有人使用。

因此,DrawableCompat允许您将{tint-the-grayscale图像用作appcompat-v7,用于着色drawable,返回到API Level 4.这与可用的类似着色方法形成对比在{Level 1}上从API级别21开始。特别是,如果您使用Drawable创建自定义小部件,则可以使用appcompat-v7来允许您的小部件采用应用程序的配色方案。

  

DrawableCompat与普通Drawable有什么区别

DrawableCompat偏离了典型的DrawableCompat方法。像...Compat这样的类是其祖先的替代品(例如NotificationCompat.Builder)。在这种情况下,Notification.Builder会将某些更改(如色调)应用于另一个DrawableCompat,其他可绘制内容由Drawable“包裹”。 DrawableCompat只提供API和wrap / unwrap功能;它是您在应用中使用DrawableCompat获得的Drawable,而不是使用您开始使用的原始灰度wrap()