gpt4 book ai didi

android - 如何在 for 循环中使用 drawRect 方法?

转载 作者:行者123 更新时间:2023-11-29 22:00:41 26 4
gpt4 key购买 nike

如何使用 DrawRect 方法在 Canvas 上绘制一组矩形?我试图通过传递 block 的坐标来生成动态室内地图。

我想知道..如何在 for 循环中使用 drawRect 方法..!

我在 Luke Taylor 的帮助下制作了两个类(class)。(谢谢你..!:))

一个是坐标,另一个是名为 DrawMapActivity 的主类。现在我需要知道如何填充坐标数组???

打包itgsm.drawmap;

import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;

public class DrawMapActivity extends Activity {
/** Called when the activity is first created. */

static Coordinates[] coordinates = new Coordinates[10]; // 10 is just an example

// public void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
//
// }

public void onDraw(Canvas canvas) {

Paint myPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
myPaint.setStrokeWidth(8/*1 /getResources().getDisplayMetrics().density*/);
myPaint.setColor(0xffff0000); //color.RED

for(int i = 0; i < coordinates.length; i++) {
canvas.drawRect(new Rect(coordinates[i].getX(), coordinates[i].getY(), coordinates[i].getX() + 10,coordinates[i].getY() + 10), myPaint); // 10 is the dimension of your block
}


}
}

最佳答案

您可以创建一个方法,该方法采用包含坐标的对象数组:

这将是包含坐标的名为“坐标”的类。

public class Coordinate {

int x;
int y;

public void setX(int x) {
this.x = x;
}

public void setY(int y) {
this.y = y;
}

public int getX() {
return this.x;
}

public int getY() {
return this.y;

}

}

您可以创建包含各个坐标的这些对象的数组:

Coordinates[] coordinates = new Coordinates[10]; // 10 is just an example

在您的渲染方法中,您现在可以渲染各个 block 。

public void drawMap(Coordinates[] coordinates) {
for(int i = 0; i < coordinates.length; i++) {
canvas.drawRect(new Rect(coordinates[i].getX, coordinates[i].getY, coordinates[i].getX + 10,coordinates[i].getY + 10), paint); // 10 is the dimension of your block
}
}

希望对您有所帮助。

更新:

这是用 Coordinate 对象填充数组的一个索引的方法:

coordinates[1] = new Coordinate();
coordinates[1].setX(0);
coordinates[1].setY(0);

关于android - 如何在 for 循环中使用 drawRect 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com