画布上的圆形网格(Android)
我是android开发新手。我试着做游戏。在那个游戏中,我必须在画布上显示5*6点的网格。为此,我决定先显示相同范围的圆圈,然后在其中显示位图。我学习了绘制圆的教程。我编译了那个代码。这里没有错误或警告,但画布不显示任何圆圈。请建议我该怎么办。下面给出了代码和logcat输出 我的代码文件:画布上的圆形网格(Android),android,android-canvas,Android,Android Canvas,我是android开发新手。我试着做游戏。在那个游戏中,我必须在画布上显示5*6点的网格。为此,我决定先显示相同范围的圆圈,然后在其中显示位图。我学习了绘制圆的教程。我编译了那个代码。这里没有错误或警告,但画布不显示任何圆圈。请建议我该怎么办。下面给出了代码和logcat输出 我的代码文件: package com.example.circle; import android.os.Bundle; import android.app.Activity; import android.cont
package com.example.circle;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class board extends View
{
Paint p = new Paint();
Paint black=new Paint();
Paint blue=new Paint();
int rows=5;
int cols=6;
Bitmap [][] dot=new Bitmap[rows][cols];
Canvas g=new Canvas();
public board(Context context) {
super(context);
p.setARGB(255, 255, 255, 255);
black.setARGB(255, 0, 0, 0);
blue.setARGB(255, 255, 0, 0);
for(int y=0; y<cols; y++)
{
for(int x=0; x<rows; x++)
{
Bitmap map= Bitmap.createBitmap(100,100, Config.RGB_565);
dot[x][y]=map;
g.setBitmap(dot[x][y]);
g.drawCircle(50, 50, 50, black);
}
}
}
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawPaint(p);
for(int y=0; y<cols; y++)
{
for(int x=0; x<rows; x++)
{
canvas.drawBitmap(dot[x][y], x*100, y*100,null);
}
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
将此更改为
setContentView(new board(this));
由于您没有创建新的类板实例并将其设置为内容,因此不会添加此视图。通常,类名以大写字母开头
将其添加到onDraw for循环中,而不是绘制位图
canvas.drawCircle(50, (x + 1) * 2 * 50, (y + 1) * 2 * 50, black);
我试过这个。它显示屏幕的四分之一部分为白色,其他三部分为黑色。请参见编辑后的答案。避免创建位图,直接在画布上画圆圈。我已经看过answer的编辑版本。非常感谢。你推荐什么?我是Android新手,所以选择这种方式看起来很容易。我想在圆圈中显示.png图像,我应该怎么做?期待您的回复。谢谢您的帮助。我用了这个::canvas.drawCircle50,x+1*2*50,y+1*2*50,黑色。屏幕左下角只显示一个圆圈。我应该更改什么?
setContentView(new board(this));
canvas.drawCircle(50, (x + 1) * 2 * 50, (y + 1) * 2 * 50, black);