aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/com/camilstaps/rushhour
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/camilstaps/rushhour')
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/Board.java7
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/Car.java34
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/FullscreenActivity.java20
3 files changed, 43 insertions, 18 deletions
diff --git a/app/src/main/java/com/camilstaps/rushhour/Board.java b/app/src/main/java/com/camilstaps/rushhour/Board.java
index 7ea52de..f59cc59 100644
--- a/app/src/main/java/com/camilstaps/rushhour/Board.java
+++ b/app/src/main/java/com/camilstaps/rushhour/Board.java
@@ -2,6 +2,7 @@ package com.camilstaps.rushhour;
import android.content.Context;
import android.util.Log;
+import android.view.ViewGroup;
import android.widget.RelativeLayout;
import java.util.HashSet;
@@ -46,9 +47,11 @@ public class Board {
cars.add(car);
}
- public void addToLayout(Context context, RelativeLayout layout) {
+ public void addToLayout(Context context, ViewGroup layout) {
+ Log.d("Board", Integer.toString(layout.getWidth()));
+
for (Car car : cars) {
- layout.addView(car.getImageView(context));
+ layout.addView(car.getImageView(context, (layout.getWidth() - layout.getPaddingLeft() - layout.getPaddingRight()) / DIMENSION));
}
}
diff --git a/app/src/main/java/com/camilstaps/rushhour/Car.java b/app/src/main/java/com/camilstaps/rushhour/Car.java
index 9d2c45a..4b0d99b 100644
--- a/app/src/main/java/com/camilstaps/rushhour/Car.java
+++ b/app/src/main/java/com/camilstaps/rushhour/Car.java
@@ -2,12 +2,14 @@ package com.camilstaps.rushhour;
import android.content.Context;
import android.graphics.Color;
+import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
+import android.widget.TableLayout;
/**
* Created by camilstaps on 16-4-15.
@@ -23,6 +25,9 @@ public class Car {
private MoveListener moveListener;
+ private float widthPerCell;
+ private int calculatedWidth, calculatedHeight;
+
ImageView iv;
public Car(Coordinate start, Coordinate end) {
@@ -51,23 +56,26 @@ public class Car {
return (SIZE + MARGIN) * (endCoordinate.getY() - startCoordinate.getY()) + SIZE;
}
- public void setImageViewMargins() {
- ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(getWidth(), getHeight());
- marginParams.setMargins(startCoordinate.getX() * (SIZE + MARGIN), startCoordinate.getY() * (SIZE + MARGIN), MARGIN, MARGIN);
- RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
- iv.setLayoutParams(layoutParams);
+ public void setLayoutParams() {
+ ViewGroup.MarginLayoutParams marginParams = new RelativeLayout.LayoutParams(calculatedWidth, calculatedHeight);
+ marginParams.setMargins((int) (startCoordinate.getX() * (widthPerCell + MARGIN) + MARGIN), (int) (startCoordinate.getY() * (widthPerCell + MARGIN) + MARGIN), MARGIN, MARGIN);
+ iv.setLayoutParams(marginParams);
}
- public ImageView getImageView(Context context) {
+ public ImageView getImageView(Context context, float widthPerCell) {
+
+ Log.d("Car", Float.toString(widthPerCell));
+
+ this.widthPerCell = widthPerCell - MARGIN;
+ calculatedWidth = (int) ((endCoordinate.getX() - startCoordinate.getX() + 1) * (this.widthPerCell + MARGIN) - MARGIN);
+ calculatedHeight = (int) ((endCoordinate.getY() - startCoordinate.getY() + 1) * (this.widthPerCell + MARGIN) - MARGIN);
iv = new ImageView(context);
iv.setBackgroundColor(colour);
- int width = getWidth();
- int height = getHeight();
- iv.setMinimumWidth(width);
- iv.setMinimumHeight(height);
+ iv.setMinimumWidth(calculatedWidth);
+ iv.setMinimumHeight(calculatedHeight);
- setImageViewMargins();
+ setLayoutParams();
final GestureDetector gdt = new GestureDetector(new GestureListener());
iv.setOnTouchListener(new View.OnTouchListener() {
@@ -101,14 +109,14 @@ public class Car {
startCoordinate.move(offset, 0);
endCoordinate.move(offset, 0);
- setImageViewMargins();
+ setLayoutParams();
}
public void moveVertically(int offset) {
startCoordinate.move(0, offset);
endCoordinate.move(0, offset);
- setImageViewMargins();
+ setLayoutParams();
}
public Coordinate wouldMoveTo(int offset) {
diff --git a/app/src/main/java/com/camilstaps/rushhour/FullscreenActivity.java b/app/src/main/java/com/camilstaps/rushhour/FullscreenActivity.java
index e5366f7..614176a 100644
--- a/app/src/main/java/com/camilstaps/rushhour/FullscreenActivity.java
+++ b/app/src/main/java/com/camilstaps/rushhour/FullscreenActivity.java
@@ -3,6 +3,10 @@ package com.camilstaps.rushhour;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
+import android.util.Log;
+import android.view.ViewTreeObserver;
+import android.widget.GridLayout;
+import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.camilstaps.rushhour.util.SystemUiHider;
@@ -21,9 +25,10 @@ public class FullscreenActivity extends Activity {
setContentView(R.layout.activity_fullscreen);
- RelativeLayout boardLayout = (RelativeLayout) findViewById(R.id.board);
+ final RelativeLayout boardLayout = (RelativeLayout) findViewById(R.id.board);
+ Log.d("FA", boardLayout.toString());
- Board board = new Board();
+ final Board board = new Board();
board.add(new Car(new Coordinate(0,0), new Coordinate(2,0), Color.YELLOW));
board.add(new Car(new Coordinate(3,0), new Coordinate(3,1), Color.rgb(128,223,182)));
board.add(new Car(new Coordinate(4,0), new Coordinate(4,2), Color.rgb(198, 134,221)));
@@ -37,6 +42,15 @@ public class FullscreenActivity extends Activity {
board.add(new Car(new Coordinate(5,4), new Coordinate(5,5), Color.rgb(219,202,161)));
board.add(new Car(new Coordinate(0,5), new Coordinate(2,5), Color.rgb(25,195,167)));
- board.addToLayout(this, boardLayout);
+ ViewTreeObserver vto = boardLayout.getViewTreeObserver();
+ vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ boardLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
+ board.addToLayout(getBaseContext(), boardLayout);
+ }
+ });
+
+ //board.addToLayout(this, boardLayout);
}
}