我如何渐变分别绘制的几个Rect的颜色?

时间:2013-11-15 09:52:47

标签: android colors paint gradient

我使用图形画布,颜色和绘画类在Android中绘制矩形。如果我将矩形存储在一个颜色为每个的颜色的数组中,我如何从一端到另一端的颜色渐变?我一直在尝试使用Color.red(colorInt)等修改rgb值,但是我得到了一些奇怪的结果。

编辑:每个矩形本身没有渐变。我需要每个都是纯色。 我已经尝试将每个颜色分量乘以一个权重,该权重基于数组中矩形的位置,但它无效。

以下是我尝试的一些代码。

if(lt != null && rt != null)
{
    int r = (int) ((Color.red(lt.getColor()) * (1.0 - weight)) - (Color.red(rt.getColor()) * weight));
    int g = (int) ((Color.green(lt.getColor()) * (1.0 - weight)) - (Color.green(rt.getColor()) * weight));
    int b = (int) ((Color.blue(lt.getColor()) * (1.0 - weight)) - (Color.blue(rt.getColor()) * weight));

    color = Color.argb(ALPHA, r, g, b);
}

1 个答案:

答案 0 :(得分:0)

这可能不是您问题的准确答案,但可能会帮助您将渐变设置为一个视图:

View yourView = findViewById(R.id.mainlayout);

GradientDrawable gd = new GradientDrawable(
        GradientDrawable.Orientation.TOP_BOTTOM,
        new int[] {0xFF616261,0xFF131313});
gd.setCornerRadius(0f);

yourView .setBackgroundDrawable(gd);

有关GradientDrawable.

的更多信息