前几天刚刚熟悉了怎样绘制图形,本来想让我绘制的图形动起来,可是问题来了,android这个图形定位真让人蛋疼,他不想JAVA 只要给矩形给4个参数:
g.drawRect(距X轴的距离,距Y轴距离,矩形宽度,矩形高度); 这样既能给矩形设置大小,又可以定位矩形。所以今天主要说一下这个小细节。android里是这样定位的
RectF rect=new RectF(x1,y1,x1+w1,y1+h1);
canvas.drawRect(rect, paint);
在模拟器里绘制图形的默认位置原点坐标(0,0)为模拟器的左上角。
所以把 矩形的宽度 应该是矩形右边距离Y轴的距离——矩形左边距Y轴的距离;
矩形的高度 应该是矩形右边距离X轴的距离——矩形左边距X轴的距离;
不知道我说明白了没。
另外一点还要注意的一点是,当你绘制的图形从一个位置移动到另一个位置的时候,在屏幕上会出现移动过的痕迹。这不是我们想要的结果。所以这样就出现了刷屏这个操作。我之前看到的许多这样的代码,因为没有注释,所以也没有注意,更不知道这样做是为了什么 代码如下:
public void myDraw(){
Canvas canvas = sfh.lockCanvas(null);//通过SurfaceHolder对象获取画布
canvas.drawColor(Color.BLACK);//这就是刷屏。很简单就一行代码,当然刷屏不知这一种方式,我就不一一列举了。
RectF rect=new RectF(x1,y1,x1+w1,y1+h1);
RectF rect1=new RectF(x2,y2,x2+w2,y2+h2);
canvas.drawRect(rect, paint);
canvas.drawRect(rect1, paint);
if(isCollsion){
canvas.drawText("碰撞",x1, y1, paint);
}else{
System.out.println("运行中");
}
sfh.unlockCanvasAndPost(canvas);
}
今天又前进了一步。