(Canvas canvas, int width, int height, float dpi, int xpos, int ypos)
| 702 | } |
| 703 | |
| 704 | public void drawCanvas(Canvas canvas, int width, int height, float dpi, int xpos, int ypos) { |
| 705 | try (Paint fill = new Paint(); |
| 706 | Paint stroke = new Paint().setMode(PaintMode.STROKE).setStrokeWidth(1); |
| 707 | Region clip = new Region();) |
| 708 | { |
| 709 | int level = canvas.save(); |
| 710 | clip.setRect(IRect.makeLTRB((int) (241 * dpi), (int) (78 * dpi), (int) ((width - 241) * dpi), (int) (height * dpi))); |
| 711 | canvas.clipRegion(clip); |
| 712 | |
| 713 | // background |
| 714 | canvas.translate(241, 0); |
| 715 | fill.setColor(0xFFE5E5E5); |
| 716 | canvas.drawRect(Rect.makeLTRB(20, 20, width - 241 - 241, height - 78), fill); |
| 717 | |
| 718 | // top ruler |
| 719 | fill.setColor(0xFFFCFCFC); |
| 720 | canvas.drawRect(Rect.makeLTRB(20, 0, width - 241 - 241, 20), fill); |
| 721 | |
| 722 | canvas.save(); |
| 723 | canvas.translate(20, 0); |
| 724 | fill.setColor(0xFFB8B8B8); |
| 725 | stroke.setColor(0xFFB1B1B1); |
| 726 | for (int x = (int) Math.ceil((-offsetX-20) / 50f) * 50; x + offsetX < width - 241 - 241; x += 50) { |
| 727 | drawTextCenter(canvas, "" + x, offsetX + x + 0.5f, 0, 14, uiFontSmall, fill); |
| 728 | canvas.drawLine(offsetX + x + 0.5f, 16, offsetX + x + 0.5f, 20, stroke); |
| 729 | } |
| 730 | canvas.restore(); |
| 731 | |
| 732 | // left ruler |
| 733 | fill.setColor(0xFFFCFCFC); |
| 734 | canvas.drawRect(Rect.makeLTRB(0, 20, 20, height - 78), fill); |
| 735 | canvas.save(); |
| 736 | canvas.translate(0, 20); |
| 737 | canvas.rotate(-90); |
| 738 | fill.setColor(0xFFB8B8B8); |
| 739 | stroke.setColor(0xFFB1B1B1); |
| 740 | for (int y = (int) Math.ceil((-offsetY-20) / 50f) * 50; y + offsetY < height - 78; y += 50) { |
| 741 | drawTextCenter(canvas, "" + y, -offsetY - y - 0.5f, 0, 14, uiFontSmall, fill); |
| 742 | canvas.drawLine(-offsetY - y - 0.5f, 16, -offsetY - y - 0.5f, 20, stroke); |
| 743 | } |
| 744 | canvas.restore(); |
| 745 | |
| 746 | // cursor pos |
| 747 | if (clip.contains((int) (xpos*dpi), (int) (ypos*dpi))) { |
| 748 | float worldX = xpos - 241 - 20 - offsetX; |
| 749 | float worldY = ypos - 78 - 20 - offsetY; |
| 750 | |
| 751 | fill.setColor(0xFF24A5FB); |
| 752 | drawTextCenter(canvas, "" + (int) worldX, 20 + offsetX + worldX + 0.5f, 0, 14, uiFontSmall, fill); |
| 753 | stroke.setColor(0xFFB1B1B1); |
| 754 | canvas.drawLine(20 + offsetX + worldX + 0.5f, 16, 20 + offsetX + worldX + 0.5f, 20, stroke); |
| 755 | |
| 756 | canvas.save(); |
| 757 | canvas.translate(0, 20); |
| 758 | canvas.rotate(-90); |
| 759 | drawTextCenter(canvas, "" + (int) worldY, -offsetY - worldY - 0.5f, 0, 14, uiFontSmall, fill); |
| 760 | canvas.drawLine(-offsetY - worldY - 0.5f, 16, -offsetY - worldY - 0.5f, 20, stroke); |
| 761 | canvas.restore(); |
no test coverage detected