我有一个应用程序,我想动态生成像2 x 2,3 x 3和4 x 4的点
现在我正在使用代码绘制点阵而不使用代码,如下所示:
if(test.equals("galmenu2"))
{
canvas.drawCircle(wid/4,3*ht/8,3, mPaint);
canvas.drawCircle(3*wid/4,3*ht/8,3, mPaint);
canvas.drawCircle(3*wid/4,5*ht/8,3, mPaint);
canvas.drawCircle(wid/4,5*ht/8,3, mPaint);
}
else if(test.equals("galmenu3"))
{
canvas.drawCircle(wid/4,3*ht/8,3, mPaint);
canvas.drawCircle(wid/2,3*ht/8,3, mPaint);
canvas.drawCircle(3*wid/4,3*ht/8,3, mPaint);
canvas.drawCircle(wid/4,ht/2,3, mPaint);
canvas.drawCircle(wid/2,ht/2,3, mPaint);
canvas.drawCircle(3*wid/4,ht/2,3, mPaint);
canvas.drawCircle(wid/4,5*ht/8,3, mPaint);
canvas.drawCircle(wid/2,5*ht/8,3, mPaint);
canvas.drawCircle(3*wid/4,5*ht/8,3, mPaint);
}
else if(test.equals("galmenu4"))
{
for(wid=1/8;wid<1;wid+=2/8)
{
for(ht=5/16;ht<3/4;ht+=1/8)
{
canvas.drawCircle(wid,ht,3, mPaint);
}
}//this for loop crash the application
}
我需要一个公式来在我的画布中心生成点请帮助我 上面提到的代码是在onDraw()方法中添加的,在此先感谢
答案 0 :(得分:4)
要在画布上绘制n
个n
个圈子,我会使用以下内容:
// n is defined
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
canvas.drawCircle(((float)i +.5)/n*(float)width, ((float)j +.5)/n*(float)width, 3, mPaint);
}
}
这里发生了什么?
我们遍历n*n
绘图命令:
(i+.5)/n
处绘制,这是0
和1
之间的数字,它是我们坐标所在的canaws宽度的百分比。