Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中使用画布创建网格_Java_Android_Eclipse_Canvas_Grid - Fatal编程技术网

Java 如何在android studio中使用画布创建网格

Java 如何在android studio中使用画布创建网格,java,android,eclipse,canvas,grid,Java,Android,Eclipse,Canvas,Grid,我试图在android studio中创建一个10x10的网格,它将显示在屏幕中央,我试图使用for循环来实现这一点,但无法正确实现。有人知道怎么做吗?我一直在看谷歌,没有关于如何做的例子或指南。我的代码如下 public class Draw extends View { Paint red = new Paint(); Paint green = new Paint(); float startX; float stopX; float startY; float stopY; int re

我试图在android studio中创建一个10x10的网格,它将显示在屏幕中央,我试图使用for循环来实现这一点,但无法正确实现。有人知道怎么做吗?我一直在看谷歌,没有关于如何做的例子或指南。我的代码如下

public class Draw extends View {
Paint red = new Paint();
Paint green = new Paint();
float startX;
float stopX;
float startY;
float stopY;
int rectSide = 1000;

public Draw(Context context) {
    super(context);
    red.setColor(Color.RED);
    green.setColor(Color.GREEN);
    red.setStrokeWidth(8);
    green.setStrokeWidth(8);
}

@Override
public void onDraw(Canvas canvas) {

    int width = canvas.getWidth();
    int height = canvas.getHeight();

    for (int i = 2; i < 10; i++) {

        startX = width / 2 - rectSide / 2;
        startY = i*100;
        stopX = width / 2 + rectSide / 2;
        stopY = i*100;

        canvas.drawLine(startX, startY, stopX, stopY, red);

    }

    for (int i = 2; i < 10; i++) {

        startX = i*100;
        startY = height / 2 - rectSide / 2;
        stopX = i*100;
        stopY = height / 2 + rectSide / 2;

        canvas.drawLine(startX, startY, stopX, stopY, red);

    }
}
}
公共类绘图扩展视图{
油漆红色=新油漆();
油漆绿色=新油漆();
浮动startX;
浮动stopX;
浮星;
浮动采矿法;
int-rectSide=1000;
公共绘图(上下文){
超级(上下文);
红色。设置颜色(颜色。红色);
绿色。设置颜色(颜色。绿色);
红色。设定行程宽度(8);
绿色。设置行程宽度(8);
}
@凌驾
公共空白onDraw(画布){
int width=canvas.getWidth();
int height=canvas.getHeight();
对于(int i=2;i<10;i++){

startX=宽度/2-矩形/2; startY=i*100; stopX=宽度/2+矩形/2; stopY=i*100; 帆布。抽绳(startX、startY、stopX、stopY、红色); } 对于(int i=2;i<10;i++){ startX=i*100; 星形=高度/2-矩形/2; stopX=i*100; stopY=高度/2+矩形/2; 帆布。抽绳(startX、startY、stopX、stopY、红色); } } }
startX=width/2-矩形/2;把这样的语句放在循环中是没有意义的,因为它与i无关。把它们放在循环之前。这将使代码更清晰。在此之后,重新思考如何在循环中绘制水平线。然后垂直线如何在一个循环中。你没有告诉现在出了什么问题。什么样的模式是由第一个for循环?我尝试了很多不同的循环,我不能得到它显示10x10在屏幕中部。我知道如何制作网格布局,我只是不知道如何制作,所以无论屏幕大小如何,中心都是10x10的网格,这就是为什么我开始使用canvas.getHeight和width。当然,你应该马上告诉我。但你还是应该从循环中去掉所有这些语句。然后,如果屏幕宽度为1024,则告诉网格的位置,例如:float startX;浮动stopX;浮星;浮动采矿法;您应该使它们成为onDraw的局部变量。仅在使用变量的位置声明变量。startX=width/2-rectSide/2;把这样的语句放在循环中是没有意义的,因为它与i无关。把它们放在循环之前。这将使代码更清晰。在此之后,重新思考如何在循环中绘制水平线。然后垂直线如何在一个循环中。你没有告诉现在出了什么问题。什么样的模式是由第一个for循环?我尝试了很多不同的循环,我不能得到它显示10x10在屏幕中部。我知道如何制作网格布局,我只是不知道如何制作,所以无论屏幕大小如何,中心都是10x10的网格,这就是为什么我开始使用canvas.getHeight和width。当然,你应该马上告诉我。但你还是应该从循环中去掉所有这些语句。然后,如果屏幕宽度为1024,则告诉网格的位置,例如:float startX;浮动stopX;浮星;浮动采矿法;您应该使它们成为onDraw的局部变量。仅在使用变量的位置声明变量。startX=width/2-rectSide/2;把这样的语句放在循环中是没有意义的,因为它与i无关。把它们放在循环之前。这将使代码更清晰。在此之后,重新思考如何在循环中绘制水平线。然后垂直线如何在一个循环中。你没有告诉现在出了什么问题。什么样的模式是由第一个for循环?我尝试了很多不同的循环,我不能得到它显示10x10在屏幕中部。我知道如何制作网格布局,我只是不知道如何制作,所以无论屏幕大小如何,中心都是10x10的网格,这就是为什么我开始使用canvas.getHeight和width。当然,你应该马上告诉我。但你还是应该从循环中去掉所有这些语句。然后,如果屏幕宽度为1024,则告诉网格的位置,例如:float startX;浮动stopX;浮星;浮动采矿法;您应该使它们成为onDraw的局部变量。仅在使用变量的地方声明变量。