为什么 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)
您可以解决颜色问题。
我有一个问题。 为什么当我使用
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)
您可以解决颜色问题。