Я хочу нарисовать карту плитки на холсте с помощью метода drawRect(). Проблема состоит в том, что он только рисует первый прямоугольник по координате 0,0. Предположим, что это карта размером 30x20 цветов красного и зеленого цветов. Я планирую сделать змеиную игру.Android Tiles with drawRect
Tile.java
public class Tile extends View{
private final int TILE_SIZE = 16;
private static int[][] tileMap;
private static int rows, columns;
public Tile(Context context) {
super(context);
createTilemap();
}
public void createTilemap(){
tileMap = new int[30][20];
rows = tileMap.length;
columns = tileMap[1].length;
Random r = new Random();
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
tileMap[i][j] = r.nextInt(2);
}
}
}
public Tile(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
int pos_i = TILE_SIZE * i;
int pos_j = TILE_SIZE * j;
switch (tileMap[i][j]){
case 0:
p.setColor(Color.GREEN);
canvas.drawRect(pos_i, pos_j, TILE_SIZE, TILE_SIZE, p);
break;
case 1:
p.setColor(Color.RED);
canvas.drawRect(pos_i, pos_j, TILE_SIZE, TILE_SIZE, p);
break;
}
}
}
}
}
activity_main.xml
<com.example.mohamed.snake.Tile
android:layout_width="match_parent"
android:layout_height="match_parent" />
Спасибо, этот ответ сработал! – melkawakibi