为什么 DrawableCompat.setTint() 方法不能正常工作?

Why DrawableCompat.setTint() method is not woking correct?

我有一个问题。 为什么当我使用

Drawable drawable = getResources().getDrawable(R.drawable.some_drawable);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.white));

不工作,当我使用

Drawable drawable = getResources().getDrawable(R.drawable.some_drawable);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), R.color.white);

在工作吗?

在文档中就像

public static void setTint(@NonNull Drawable drawable, @ColorInt int tint){}

所以意味着我需要提供一个资源,而不是一个整数。

谢谢。

编辑:

我看看我的函数是否用 @ColorInt(..., @ColorInt int color) 注释,如果我提供颜色资源,它是否正常工作。越来越扑朔迷离了如果不是,资源颜色将被忽略。

使用前必须先解析颜色。 R.color.white 只是指向 R 文件中 id 的指针。

通过调用 getResources().getColor(R.color.white) 您可以解决颜色问题。