gpt4 book ai didi

java - 获取 ViewGroup 的真实颜色并与资源颜色进行比较

转载 作者:行者123 更新时间:2023-11-30 00:48:07 24 4
gpt4 key购买 nike

我正在尝试获取 ViewGroup 的颜色并尝试与资源颜色进行比较。

这是我的代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/mainLayout"
android:background="@color/colorPrimary"
android:layout_height="match_parent"
>

在我的代码中,我正在这样做。

ViewGroup mainLayout = (ViewGroup) findViewById(R.id.mainLayout);
ColorDrawable viewColor = (ColorDrawable) mainLayout.getBackground();
if (viewColor != null)
{
int colorId = viewColor.getColor(); // i get -6371612
int mainColor = getResources().getColor(R.color.colorPrimary); // i get -65536
if (colorId == mainColor)
{
mainLayout.setBackgroundColor(Color.RED);
}
}

colorId 和 mainColor 不一样。我错过了什么?它们不应该相同吗?

最佳答案

我刚刚检查了您的代码,它可以完美运行(颜色经过比较并且相等)。

但是:当我将 RelativeLayout 的背景颜色设置为 Color.RED 时,我也会得到您收到的 -65536。

所以换句话说:您的代码工作正常,但是该函数被调用了两次,第一次是它将布局的颜色设置为红色(如代码指示的那样),然后当您尝试检查颜色不匹配(因为一个是红色,另一个是 colorPrimary。

关于java - 获取 ViewGroup 的真实颜色并与资源颜色进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41489189/

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