(Canvas canvas)
| 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}); |
no test coverage detected