gpt4 book ai didi

java - 如何将 ColorDrawable 的 getColor() 返回的 int 值转换为 RGB?

转载 作者:行者123 更新时间:2023-11-29 03:18:35 31 4
gpt4 key购买 nike

所以我有以下代码 fragment 可以检索 Activity 的背景颜色。但是,getColor 返回一个 int 值,似乎没有办法修改它以返回更标准的格式来处理和修改。

    setContentView(R.layout.activity_test);

View root = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);

int color = Color.TRANSPARENT;
Drawable background = root.getBackground();
if (background instanceof ColorDrawable)
color = ((ColorDrawable) background).getColor();

在这种特殊情况下, Activity 的背景颜色最初在 XML 文件中定义为 android:background="#0099cc",getColor() 返回 -16737844。但是,我想通过做一些事情来改变它,比如随着时间的推移逐渐改变颜色的 rgb 值 [即rgb(initialRVal+1,initialGVal+1,initialBVal+1)]。这需要我以某种方式将 -16737844 转换为一组 RGB 值,但似乎没有办法这样做。

最佳答案

您想将十六进制颜色值转换为 RGB。

int red = (color >> 16) & 0xFF;
int green = (color >> 8) & 0xFF;
int blue = (color >> 0) & 0xFF;

关于java - 如何将 ColorDrawable 的 getColor() 返回的 int 值转换为 RGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004621/

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