Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class BoardView extends View {
- private int width = 0, height = 0;
- private float startx, starty, board_size;
- private Paint black = new Paint();
- private Paint white = new Paint();
- {
- black.setColor(Color.BLACK);
- white.setColor(Color.WHITE);
- }
- public BoardView(Context context) {
- super(context);
- }
- public BoardView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- }
- public BoardView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
- @Override
- public void layout(int l, int t, int r, int b) {
- super.layout(l, t, r, b);
- //layout срабатывает, когда уже точно определено положение вьюшки
- //запоминаем в этот момент ширину и высоту
- width = r - l;
- height = b - t;
- //определяем размер доски в пикселях и координаты верхнего левого угла
- if (width > height) {
- starty = 0;
- startx = (width - height) / 2f;
- board_size = height;
- } else {
- startx = 0;
- starty = (height - width) / 2f;
- board_size = width;
- }
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- //рисуем черный квадрат во всю доску
- canvas.drawRect(startx, starty, startx + board_size, starty + board_size, black);
- //и теперь белые квадратики в шахматном порядке
- for (int i = 0; i < 8; i++) {
- for (int j = 0; j < 8; j++) {
- if((i + j)%2 == 0)
- continue;
- canvas.drawRect(
- startx + i * board_size / 8f,
- starty + j * board_size / 8f,
- startx + (i + 1) * board_size / 8f,
- starty + (j + 1) * board_size / 8f,
- white);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement