如何在 android 中以编程方式在 SVG 上设置和获取色调颜色?
How to set and get tint color on SVG programmaticaly in android?
我有一个 ImageView
,其中有一个 SVG 作为源示例:android:src="@drawable/bold_svg"
。
现在单击我想将色调颜色设置为 color accent
或 return 到 white
。两个州。
我尝试过的:
myImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int currentColor, colorAccent;
currentColor=ImageViewCompat.getImageTintList(myImageView).getDefaultColor();
colorAccent=getResources().getColor(R.color.colorAccent);
if (currentColor==colorAccent) {
myImageView.setColorFilter(getResources().getColor(R.color.white_text_color));
} else {
myImageView.setColorFilter(getResources().getColor(R.color.colorAccent));
}
}
});
好像每次点击按钮,currentColor
都没有变化,所以只有else
被调用了!我错过了什么?
我设法找到了这样的答案:
myImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int currentColor, colorAccent;
currentColor=ImageViewCompat.getImageTintList(myImageView).getDefaultColor();
colorAccent=getResources().getColor(R.color.colorAccent);
if (currentColor==colorAccent) {
ImageViewCompat.setImageTintList(ivBold, ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.white_text_color)));
} else {
ImageViewCompat.setImageTintList(myImageView, ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.colorAccent)));
}
}
});
我有一个 ImageView
,其中有一个 SVG 作为源示例:android:src="@drawable/bold_svg"
。
现在单击我想将色调颜色设置为 color accent
或 return 到 white
。两个州。
我尝试过的:
myImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int currentColor, colorAccent;
currentColor=ImageViewCompat.getImageTintList(myImageView).getDefaultColor();
colorAccent=getResources().getColor(R.color.colorAccent);
if (currentColor==colorAccent) {
myImageView.setColorFilter(getResources().getColor(R.color.white_text_color));
} else {
myImageView.setColorFilter(getResources().getColor(R.color.colorAccent));
}
}
});
好像每次点击按钮,currentColor
都没有变化,所以只有else
被调用了!我错过了什么?
我设法找到了这样的答案:
myImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int currentColor, colorAccent;
currentColor=ImageViewCompat.getImageTintList(myImageView).getDefaultColor();
colorAccent=getResources().getColor(R.color.colorAccent);
if (currentColor==colorAccent) {
ImageViewCompat.setImageTintList(ivBold, ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.white_text_color)));
} else {
ImageViewCompat.setImageTintList(myImageView, ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.colorAccent)));
}
}
});