MCPcopy Create free account
hub / github.com/HumbleUI/Skija / drawGradients

Method drawGradients

examples/scenes/src/ShadersScene.java:119–187  ·  view source on GitHub ↗
(Canvas canvas)

Source from the content-addressed store, hash-verified

117 }
118
119 private void drawGradients(Canvas canvas) {
120 canvas.save();
121
122 Shader[] shaders = new Shader[] {
123 Shader.makeLinearGradient( 0, 0, 60, 0, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
124 Shader.makeLinearGradient(20, 0, 40, 0, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
125 Shader.makeLinearGradient(20, 0, 40, 0, new int[] { 0xFF247ba0, 0xFFf3ffbd }, null, GradientStyle.DEFAULT.withTileMode(FilterTileMode.REPEAT)),
126 Shader.makeLinearGradient(20, 0, 40, 0, new int[] { 0xFF247ba0, 0xFFf3ffbd }, null, GradientStyle.DEFAULT.withTileMode(FilterTileMode.MIRROR)),
127 Shader.makeLinearGradient(20, 0, 40, 0, new int[] { 0xFF247ba0, 0xFFf3ffbd }, null, GradientStyle.DEFAULT.withTileMode(FilterTileMode.DECAL)),
128 Shader.makeLinearGradient( 0, 0, 0, 60, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
129 Shader.makeLinearGradient( 0, 0, 0, 60, new int[] { 0xFF247ba0, 0xFFf3ffbd }, null, GradientStyle.DEFAULT.withLocalMatrix(Matrix33.makeRotate(45))),
130 Shader.makeLinearGradient( 0, 0, 60, 60, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
131 Shader.makeLinearGradient( 0, 0, 60, 0, new int[] { 0xFF247ba0, 0x00000000 }),
132 Shader.makeLinearGradient( 0, 0, 60, 0, new int[] { 0xFF247ba0, 0xFFff1654, 0xFF70c1b3, 0xFFf3ffbd, 0xFFb2dbbf }),
133 Shader.makeLinearGradient( 0, 0, 60, 0, new int[] { 0xFF247ba0, 0xFFff1654, 0xFF70c1b3, 0xFFf3ffbd, 0xFFb2dbbf }, new float[] {0f, 0.1f, 0.2f, 0.9f, 1f}),
134
135 Shader.makeRadialGradient(30, 30, 30, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
136 Shader.makeRadialGradient(30, 30, 10, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
137 Shader.makeRadialGradient(30, 30, 10, new int[] { 0xFF247ba0, 0xFFf3ffbd }, null, GradientStyle.DEFAULT.withTileMode(FilterTileMode.REPEAT)),
138
139 Shader.makeTwoPointConicalGradient(20, 20, 10, 40, 40, 40, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
140
141 Shader.makeSweepGradient(30, 30, new int[] { 0xFF247ba0, 0xFFf3ffbd }),
142 Shader.makeSweepGradient(30, 30, 45, 315, new int[] { 0xFF247ba0, 0xFFff1654, 0xFF70c1b3, 0xFFf3ffbd, 0xFFb2dbbf }, null, GradientStyle.DEFAULT.withTileMode(FilterTileMode.DECAL)),
143 };
144
145 try (Paint fill = new Paint()) {
146 for (Shader sh: shaders) {
147 fill.setShader(sh);
148 canvas.drawRect(Rect.makeXYWH(0, 0, 60, 60), fill);
149 canvas.translate(70, 0);
150 sh.close();
151 }
152 }
153
154 try (var sh = Shader.makeSweepGradient(30, 30, new int[] { 0xFFFF00FF, 0xFF00FFFF, 0xFFFFFF00, 0xFFFF00FF });
155 var stroke = new Paint().setShader(sh).setMode(PaintMode.STROKE).setStrokeWidth(10))
156 {
157 canvas.drawCircle(30, 30, 30, stroke);
158 canvas.translate(70, 0);
159 }
160
161 try (Path p1 = new PathBuilder().lineTo(30.1f, 0).lineTo(0, 32.5f).closePath().build();
162 Shader s1 = Shader.makeLinearGradient(0, 32.5f, 30.1f, 0,
163 new int[] {0xFF0095D5, 0xFF3C83DC, 0xFF6D74E1, 0xFF806EE3},
164 new float[] {0.1183f, 0.4178f, 0.6962f, 0.8333f});
165 Paint f1 = new Paint().setShader(s1);
166
167 Path p2 = new PathBuilder().moveTo(30.1f, 0).lineTo(0, 31.7f).lineTo(0, 60).lineTo(30.1f, 29.9f).lineTo(60, 0).closePath().build();
168 Shader s2 = Shader.makeLinearGradient(0, 60, 60, 0,
169 new int[] {0xFFC757BC, 0xFFD0609A, 0xFFE1725C, 0xFFEE7E2F, 0xFFF58613, 0xFFF88909},
170 new float[] {0.1075f, 0.2138f, 0.4254f, 0.6048f, 0.743f, 0.8232f});
171 Paint f2 = new Paint().setShader(s2);
172
173 Path p3 = new PathBuilder().moveTo(0, 60).lineTo(30.1f, 29.9f).lineTo(60, 60).closePath().build();
174 Shader s3 = Shader.makeLinearGradient(0, 60, 30.1f, 29.9f,
175 new int[] { 0xFF0095D5, 0xFF238AD9, 0xFF557BDE, 0xFF7472E2, 0xFF806EE3 },
176 new float[] {0f, 0.3f, 0.62f, 0.8643f, 1f});

Callers 1

drawMethod · 0.95

Calls 15

makeLinearGradientMethod · 0.95
makeRotateMethod · 0.95
makeRadialGradientMethod · 0.95
makeSweepGradientMethod · 0.95
saveMethod · 0.80
setShaderMethod · 0.80
drawRectMethod · 0.80
setStrokeWidthMethod · 0.80
setModeMethod · 0.80
drawCircleMethod · 0.80
closePathMethod · 0.80

Tested by

no test coverage detected