gpt4 book ai didi

java - 为什么颜色的深浅会改变?

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:33 25 4
gpt4 key购买 nike

我有一些按钮,我想根据最后按下的按钮来更改这些按钮的背景。唯一的问题是颜色发生变化,我不知道为什么。

更改背景的代码

public static void swap(View on, List<View> all, int defaultColor) {
for (View v : all) {
Drawable backgroundOff = v.getBackground();
backgroundOff.setTint(defaultColor);
v.setBackground(backgroundOff);
}
Drawable backgroundOn = on.getBackground();
backgroundOn.setTint(manipulateColor(defaultColor, 0.8f));
on.setBackground(backgroundOn);
}

使默认颜色变暗的代码

public static int manipulateColor(int color, float factor) {
int a = Color.alpha(color);
int r = Math.round(Color.red(color) * factor);
int g = Math.round(Color.green(color) * factor);
int b = Math.round(Color.blue(color) * factor);
return Color.argb(a,
Math.min(r,255),
Math.min(g,255),
Math.min(b,255));
}

按钮代码

final View btnTrue = (findViewById(R.id.tofTrueInput));
final View btnFalse = (findViewById(R.id.tofFalseInput));
final int defColor = getResources().getColor(R.color.colorAccent);
final List<View> btns = new ArrayList<>();
btns.add(btnTrue);
btns.add(btnFalse);
btnTrue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userAnswer = true;
ExtensionMethods.swap(btnTrue, btns, defColor);
}
});
btnFalse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userAnswer = false;
ExtensionMethods.swap(btnFalse, btns, defColor);
}
});

颜色

默认颜色:defaultColor
更改后的默认颜色:changedDefaultColor

它的黑暗版本也同样发生了变化。
但是为什么呢?

最佳答案

我不知道为什么,但它正在工作。我刚刚将这一行添加到 foreach 循环中:

backgroundOff.setTintMode(PorterDuff.Mode.DARKEN);
<小时/>
public static void swap(View on, List<View> all, int defaultColor) {
for (View v : all) {
Drawable backgroundOff = v.getBackground();
backgroundOff.setTintMode(PorterDuff.Mode.DARKEN);
backgroundOff.setTint(defaultColor);
v.setBackground(backgroundOff);
}
Drawable backgroundOn = on.getBackground();
backgroundOn.setTint(manipulateColor(defaultColor, 0.8f));
on.setBackground(backgroundOn);
}

关于java - 为什么颜色的深浅会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com