Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. public class BoardView extends View {
  2. private int width = 0, height = 0;
  3. private float startx, starty, board_size;
  4. private Paint black = new Paint();
  5. private Paint white = new Paint();
  6.  
  7. {
  8. black.setColor(Color.BLACK);
  9. white.setColor(Color.WHITE);
  10. }
  11.  
  12. public BoardView(Context context) {
  13. super(context);
  14. }
  15.  
  16. public BoardView(Context context, @Nullable AttributeSet attrs) {
  17. super(context, attrs);
  18. }
  19.  
  20. public BoardView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
  21. super(context, attrs, defStyleAttr);
  22. }
  23.  
  24. @Override
  25. public void layout(int l, int t, int r, int b) {
  26. super.layout(l, t, r, b);
  27. //layout срабатывает, когда уже точно определено положение вьюшки
  28. //запоминаем в этот момент ширину и высоту
  29. width = r - l;
  30. height = b - t;
  31. //определяем размер доски в пикселях и координаты верхнего левого угла
  32. if (width > height) {
  33. starty = 0;
  34. startx = (width - height) / 2f;
  35. board_size = height;
  36. } else {
  37. startx = 0;
  38. starty = (height - width) / 2f;
  39. board_size = width;
  40. }
  41. }
  42.  
  43. @Override
  44. protected void onDraw(Canvas canvas) {
  45. super.onDraw(canvas);
  46.  
  47. //рисуем черный квадрат во всю доску
  48. canvas.drawRect(startx, starty, startx + board_size, starty + board_size, black);
  49. //и теперь белые квадратики в шахматном порядке
  50. for (int i = 0; i < 8; i++) {
  51. for (int j = 0; j < 8; j++) {
  52. if((i + j)%2 == 0)
  53. continue;
  54. canvas.drawRect(
  55. startx + i * board_size / 8f,
  56. starty + j * board_size / 8f,
  57. startx + (i + 1) * board_size / 8f,
  58. starty + (j + 1) * board_size / 8f,
  59. white);
  60. }
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement