我有一个问题。 我何时使用
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){}
所以意味着我需要提供一个资源,而不是一个int。
谢谢。
编辑:
如果我提供了颜色资源,我会看到我的函数是否使用@ColorInt
(..., @ColorInt int color)
进行注释。变得更加混乱。如果不是,则忽略资源颜色。
答案 0 :(得分:2)
使用前必须先解析颜色。 R.color.white
只是指向R
文件中id的指针。
通过调用getResources().getColor(R.color.white)
解析颜色。