1

如果图标着色NavigationView会对图标进行着色。我的图标是绿色的,在 NavigationView 中是灰色的。这是如何运作的?

我想自己在另一个视图中执行此操作,但我没有找到 NavigationView 如何执行此操作。

4

1 回答 1

3

这篇文解释了可绘制对象的 AppCompat 着色。这是你要找的吗?

Lollipop 中添加的 Drawable 着色方法对于让您动态着色资产非常有用。AppCompat 在 v21 支持库中有自己的实现,我们现在将其提取到 support-v4 中的 DrawableCompat 中供所有人使用。重要的是要知道它是如何工作的。

Drawable drawable = ...;

// Wrap the drawable so that future tinting calls work 
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);

// We can now set a tint 
DrawableCompat.setTint(drawable, Color.RED);
// ...or a tint list 
DrawableCompat.setTintList(drawable, myColorStateList);
// ...and a different tint mode
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);

或者,如果您只想为 ImageView 着色,您可以这样做:

ImageView image = (ImageView) findViewById(R.id.image);
image.setColorFilter(...);
于 2015-06-07T11:22:35.050 回答