java - 如何在 android 中以编程方式在 SVG 上设置和获取色调颜色?
问题描述
我有ImageView
一个 SVG 作为源示例:android:src="@drawable/bold_svg"
.
现在单击我想将色调颜色设置为color accent
或将其返回为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)));
}
}
});
推荐阅读
- google-analytics - 是否可以将特定 SKU 购买与特定活动联系起来?
- python - 使用不同的 id 更新所有字典值
- python-3.x - Python:根据另一列上的数据在 csv 文件中创建新列和行
- sql - 递归 CTE 的滞后
- javascript - 什么可能以这种方式“干扰”DataTables AJAX 滚动条?
- python - 在 Python 中使用 Lambda 表达式进行情感分析
- javascript - 多行匹配的正则表达式
- python - xlworkbook 类的静态方法出现 EOF 错误
- android - 检测到 nfc 贴纸时启动 Web 请求
- wordpress - 如何使用 301 重定向的重写规则删除 URL 中的所有 ? 源行代码