java数独板放置数字
我一直在尝试使用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));
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()函数的行。