我使用图形画布,颜色和绘画类在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);
}
答案 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);
的更多信息