java数独板放置数字

java数独板放置数字,java,java-canvas,Java,Java Canvas,我一直在尝试使用java绘制一个图板,但每次它运行时,我都会遇到一个错误,代码停止运行。这是导致问题的最后一行代码,但我不知道为什么 protected void onDraw(Canvas canvas) { //Draw the background... Paint background = new Paint(); background.setColor(getResources().getColor(R.color.game_background));

我一直在尝试使用java绘制一个图板,但每次它运行时,我都会遇到一个错误,代码停止运行。这是导致问题的最后一行代码,但我不知道为什么

protected void onDraw(Canvas canvas) {
    //Draw the background...
    Paint background = new Paint();
    background.setColor(getResources().getColor(R.color.game_background));
    canvas.drawRect(0, 0, getWidth(), getHeight(), background);

    //Draw the board
    //Draw the selection


//Draw the board....
//Define colours for grid lines
Paint hilite = new Paint();
hilite.setColor(getResources().getColor(R.color.game_hilite));
Paint light = new Paint();
light.setColor(getResources().getColor(R.color.game_light));
Paint dark = new Paint();
dark.setColor(getResources().getColor(R.color.game_dark));
Paint tile1 = new Paint();
dark.setColor(getResources().getColor(R.color.Tile_1));



//Draw the minor grid lines

for (int i = 0; i <11; i++) {
    canvas.drawLine(0, i * height, getWidth(), i * height, dark);
    canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1, dark);
    canvas.drawLine(i * width, 0, i * width, getHeight(), light);
    canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(), dark);    
}
//Draw the major grid lines
for (int i = 0; i < 11; i++) {
    if (i % 3 != 0)
        continue;
    canvas.drawLine(0, i * height, getWidth(), i * height, dark);
    canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1, dark);
    canvas.drawLine(i * width, 0, i * width, getHeight(), dark);
    canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(), dark);
}

//Draw the numbers .... 
//Define color and style for numbers 
Paint foreground = new Paint(Paint.ANTI_ALIAS_FLAG);
foreground.setColor(getResources().getColor(R.color.game_foreground));
foreground.setStyle(Style.FILL);
foreground.setTextSize(height * 0.75f);
foreground.setTextScaleX(width / height);
foreground.setTextAlign(Paint.Align.CENTER);

//Draw the number in the center of the tile
FontMetrics fm = foreground.getFontMetrics();
//Centering in X: use alignment (and X at midpoint)
float x = width / 2;
//Centering in Y: measure ascent/decent first
float y = height / 2 - (fm.ascent + fm.descent) / 2; 
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            canvas.drawText(this.game.getTileString(i,j), i * width + x, j * height + y, foreground);
        }
    }

}
受保护的void onDraw(画布){
//画背景。。。
绘制背景=新绘制();
setColor(getResources().getColor(R.color.game_background));
drawRect(0,0,getWidth(),getHeight(),background);
//画板
//绘制所选内容
//画黑板。。。。
//定义网格线的颜色
Paint hilite=新的Paint();
setColor(getResources().getColor(R.color.game_hilite));
油漆灯=新油漆();
setColor(getResources().getColor(R.color.game_light));
深色油漆=新油漆();
setColor(getResources().getColor(R.color.game_dark));
油漆瓷砖1=新油漆();
深色.setColor(getResources().getColor(R.color.Tile_1));
//绘制次要网格线

对于(int i=0;i)你必须给我们提供比“我出错”更多的细节。这段代码可能会有上千种错误。你会遇到什么确切的错误?这是一个android应用程序,它正在运行,当单击开始生成板和数字时,它所说的只是“不幸的是,文件名已停止”我不做Android编程,但我百分之百确定有一种方法可以做一些日志记录。你需要捕获抛出的错误并记录堆栈跟踪。如果没有这些,将很难提供帮助。请参阅以下日志说明:好的,这是日志04-27 14:23:46.615:E/AndroidRuntime(2078)中的错误:位于dalvik.system.NativeStart.main(本机方法),它告诉我们错误是从主函数(这是所有代码)的某个地方抛出的。您需要找到包含文件名和onDraw()函数的行。