小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
构造函数
RadialGradient(float centerX, float centerY, float radius, @ColorInt int centerColor, @ColorInt int edgeColor, @NonNull TileMode tileMode);
RadialGradient(float centerX, float centerY, float radius,
@NonNull @ColorInt int colors[], @Nullable float stops[],
@NonNull TileMode tileMode)
参数说明:
centerX ,centerY:shader的中心坐标,开始渐变的坐标。
radius:渐变的半径,
centerColor,edgeColor:中心点渐变颜色,边界的渐变颜色,
colors:渐变颜色数组,
stoops:渐变位置数组,类似扫描渐变的positions数组,取值[0,1],中心点为0,半径到达位置为1.0f,
tileMode:shader未覆盖以外的填充模式。
RadialGradient radialGradient = new RadialGradient(400, 400, 100, Color.GREEN, Color.RED, Shader.TileMode.CLAMP);
mPaint.setShader(radialGradient);
canvas.drawCircle(400, 400, 200, mPaint);
多色渐变
int[] colors = {Color.BLUE, Color.RED, Color.YELLOW, Color.GREEN};
float[] positions = {0f, 0.2f, 0.6f, 1.0f};
RadialGradient radialGradient = new RadialGradient(400, 400, 100, colors, positions, Shader.TileMode.CLAMP);
mPaint.setShader(radialGradient);
canvas.drawCircle(400, 400, 300, mPaint);
\