| 237 | } |
| 238 | |
| 239 | private void drawBlending(Canvas canvas) { |
| 240 | int pink = 0xFFFF0080; |
| 241 | int purple = 0xFF8000FF; |
| 242 | int orange = 0xFFFFA500; |
| 243 | int transparentBlack = 0x00000000; |
| 244 | |
| 245 | try (Paint fill = new Paint(); |
| 246 | Shader gr1 = Shader.makeLinearGradient(0, 0, 0, 100, new int[] {pink, purple}); |
| 247 | Shader gr2 = Shader.makeLinearGradient(0, 0, 400, 0, new int[] {orange, transparentBlack}); |
| 248 | Shader gr3 = Shader.makeLinearGradient(0, 0, 400, 0, new int[] {orange, transparentBlack}, null, GradientStyle.DEFAULT.withPremul(false)); |
| 249 | Shader gr4 = Shader.makeBlend(BlendMode.SRC_OVER, gr1, gr2);) |
| 250 | { |
| 251 | canvas.save(); |
| 252 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setColor(pink)); |
| 253 | canvas.translate(90, 0); |
| 254 | canvas.drawRect(Rect.makeXYWH(0, 0, 400, 80), fill.setShader(gr1)); |
| 255 | canvas.translate(410, 0); |
| 256 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setShader(null).setColor(purple)); |
| 257 | canvas.restore(); |
| 258 | |
| 259 | canvas.translate(0, 90); |
| 260 | canvas.save(); |
| 261 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setColor(orange)); |
| 262 | canvas.translate(90, 0); |
| 263 | canvas.drawRect(Rect.makeXYWH(0, 0, 400, 80), fill.setShader(gr2)); |
| 264 | canvas.translate(410, 0); |
| 265 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setShader(null).setColor(transparentBlack)); |
| 266 | canvas.restore(); |
| 267 | |
| 268 | canvas.translate(0, 90); |
| 269 | canvas.save(); |
| 270 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setColor(orange)); |
| 271 | canvas.translate(90, 0); |
| 272 | canvas.drawRect(Rect.makeXYWH(0, 0, 400, 80), fill.setShader(gr3)); |
| 273 | canvas.translate(410, 0); |
| 274 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setShader(null).setColor(transparentBlack)); |
| 275 | canvas.restore(); |
| 276 | |
| 277 | canvas.translate(0, 90); |
| 278 | canvas.save(); |
| 279 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setColor(orange)); |
| 280 | canvas.translate(90, 0); |
| 281 | canvas.drawRect(Rect.makeXYWH(0, 0, 400, 80), fill.setShader(gr4)); |
| 282 | canvas.translate(410, 0); |
| 283 | canvas.drawRect(Rect.makeXYWH(0, 0, 80, 80), fill.setShader(gr1)); |
| 284 | canvas.restore(); |
| 285 | } |
| 286 | } |
| 287 | } |