【问题标题】:Get Red, Blue or Green channel from Android Color object从 Android Color 对象中获取红色、蓝色或绿色通道
【发布时间】:2017-07-09 06:02:55
【问题描述】:

我觉得这是一个非常愚蠢的问题,但 Android Color 类似乎没有一种方法可以分别从 Color 对象的 R、G、B 通道获取 int。我可以像 java.awt 的 Color 那样获取频道吗?

【问题讨论】:

    标签: java android colors


    【解决方案1】:
    int color = ContextCompat.getColor(context, R.color.someColor);
            int red = Color.red(color);
            int blue = Color.blue(color);
            int green = Color.green(color);
            int alpha = Color.alpha(color);
    

    【讨论】:

    • 我不想要来自资源文件或任何东西的颜色,我只想从我以编程方式制作的 Color 对象中获取它。我是否必须以某种方式获取十六进制并解析它以获取通道?如果这甚至是可能的原因,我可以看到这门课的知识很少。
    • 你是如何制作颜色对象的?
    • 我刚刚意识到我从未尝试过初始化 android.graphics.Color 对象,我只有一个 Color 参数中的对象。 android上是否没有与java的java.awt.Color等价的以编程方式处理颜色?
    • 在 Android 中,颜色值是整数。如果您想使用该颜色值进行一些操作,那么您有一个颜色类,但它是辅助类而不是像 AWT 那样的实际颜色值容器。
    【解决方案2】:

    你是说

    int colorValue=Color.parseColor(#121212);
    int red=Color.red(colorValue);
    int green=Color.green(colorValue);
    int blue=Color.blue(colorValue);
    

    【讨论】:

      【解决方案3】:

      试试这个:

      String myPassedColor = "#ffffff";
      int color = Color.parseColor(myPassedColor)
      int r = Color.red(color);
      int g = Color.green(color);
      int b = Color.blue(color);
      int a = Color.alpha(color);
      

      【讨论】:

        最近更新 更多