我正试图弄清楚如何在Android中的onDraw
方法中绘制一个Square。
这是我到目前为止所拥有的。
//this.rect is an instance of Rect() which later gets called in the canvas.drawRect() method
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = this.getMeasuredWidth();
int height = this.getMeasuredHeight();
int padding = (width / 10);
this.size = width - padding;
this.rect.set(padding,padding,size,size);
}
上面的代码绘制了正方形,但我不确定如何让它在画布中居中。我也愿意使用另一种不涉及使用Rect
的技术。
我需要将哪些属性设置为此Rect()
,以便canvas.drawRect(rect,paint)
直接在画布的中心绘制矩形?
答案 0 :(得分:1)
假设width
是画布的宽度,我猜你错过了两次填充.-
this.size = width - padding * 2;
修改强>
由于我们在这里谈论一个矩形,您需要对代码进行一些更改,并计算不同的顶部和左侧填充.-
int width = this.getMeasuredWidth();
int height = this.getMeasuredHeight();
int paddingLeft = (width / 10);
size = width - paddingLeft * 2;
int paddingTop = (height - size) / 2;
this.rect.set(paddingLeft,paddingTop,size,size);
编辑2
也许更清晰的方法会开始计算你方阵的大小.-
size = width * 0.9f;
int paddingLeft = (width - size) / 2;
int paddingTop = (height - size) / 2;
this.rect.set(paddingLeft,paddingTop,size,size);