(Canvas canvas, int width, int height, float dpi, int xpos, int ypos)
| 4 | |
| 5 | public class MaskFiltersScene extends Scene { |
| 6 | @Override |
| 7 | public void draw(Canvas canvas, int width, int height, float dpi, int xpos, int ypos) { |
| 8 | canvas.translate(20, 20); |
| 9 | |
| 10 | try (Paint fill = new Paint().setColor(0xFFe76f51); |
| 11 | Path figure = new PathBuilder().moveTo(75, 19).lineTo(140, 131).lineTo(10, 131).closePath() |
| 12 | .moveTo(75, 56).lineTo(42, 113).lineTo(107, 113).closePath() |
| 13 | .build();) |
| 14 | { |
| 15 | MaskFilter outer = MaskFilter.makeBlur(FilterBlurMode.OUTER, 5); |
| 16 | MaskFilter inner = MaskFilter.makeBlur(FilterBlurMode.INNER, 5); |
| 17 | MaskFilter shader = MaskFilter.makeShader(Shader.makeLinearGradient(10, 0, 140, 0, new int[] { 0xFF000000, 0x00000000 })); |
| 18 | byte[] table = new byte[256]; |
| 19 | for (int i = 0; i < 256; ++i) { |
| 20 | table[i] = (byte) (255 - i); |
| 21 | } |
| 22 | |
| 23 | MaskFilter[][] filters = new MaskFilter[][] { |
| 24 | new MaskFilter[] { |
| 25 | MaskFilter.makeBlur(FilterBlurMode.NORMAL, 10), |
| 26 | MaskFilter.makeBlur(FilterBlurMode.NORMAL, 5), |
| 27 | MaskFilter.makeBlur(FilterBlurMode.SOLID, 5), |
| 28 | outer, |
| 29 | inner, |
| 30 | MaskFilter.makeBlur(FilterBlurMode.NORMAL, 5, false), |
| 31 | shader |
| 32 | } |
| 33 | }; |
| 34 | |
| 35 | for (MaskFilter[] fs: filters) { |
| 36 | canvas.save(); |
| 37 | for (MaskFilter f: fs) { |
| 38 | fill.setMaskFilter(f); |
| 39 | canvas.drawPath(figure, fill); |
| 40 | canvas.translate(150, 0); |
| 41 | f.close(); |
| 42 | } |
| 43 | canvas.restore(); |
| 44 | canvas.translate(0, 150); |
| 45 | } |
| 46 | } |
| 47 | } |
| 48 | } |
nothing calls this directly
no test coverage detected