gpt4 book ai didi

android - Android 的十六进制代码问题

转载 作者:行者123 更新时间:2023-11-29 21:32:49 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我试图通过编码动态地向按钮添加渐变。如果我在 xml 中静态应用渐变,则 6 位十六进制代码有效;但是当我尝试从 java 更改渐变时不起作用。在这种情况下,8 位十六进制代码有效。请帮我解决这个问题。

public void setGradient(btnGradientStartColor,btnGradientEndColor,buttonUnderAction) {

int colors[] = { btnGradientStartColor, btnGradientEndColor };
for(int x:colors){
System.out.println("value in colors[]:"+x);
}
GradientDrawable gradientDrawable = new GradientDrawable(GradientDrawable.Orientation.BL_TR, colors);
btnUnderAction.setBackgroundDrawable(gradientDrawable);

}

我将十六进制颜色代码和按钮 ID 传递给此方法。在这里,如果我传递 6 位十六进制代码,它不起作用,但 8 位十六进制代码有效。 例如0xff255779 和 0xffa6c0cd 有效,但 0x30196E 和 0x3498db 无效。

有什么方法可以将 6 位十六进制代码转换为 8 位代码,或者我可以让我的代码与 6 位代码一起使用吗!!!

最佳答案

前 2 位数字 (ff) 是字母。 ff 表示完全不透明,00 表示完全透明。在xml中如果你使用#00ff00,它被修改为ff00ff00(自动添加前导ff)。在代码中,如果你有 00ff00,它会被翻译成 0000ff00,所以完全透明。如果您有十六进制代码,请执行

color = color | 0xff000000;

让它完全不透明

关于android - Android 的十六进制代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063683/

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