我创建了一个扩展 View 的类,这是 onDraw 方法。该程序创建了一个迷宫并获得适当的高度和宽度读数,我似乎需要在 onDraw 方法中调用它们(否则它只会为两者返回 0)。这可能就是把一切都搞砸的原因。但是,它会根据所绘制视图部分中可见方块的间距获得正确的高度。
看起来未绘制的视图部分大约是上下文菜单的大小,并且与备件不匹配。我一直在寻找其他有这个问题的人,似乎没有其他人有这个问题,据我所知,我没有做任何与他们特别不同的事情。如果我可以提供任何其他见解,请告诉我。
我还不能发布图片,因为我对整个堆栈溢出的事情还是新手=(因此我试图尽可能地解释这个现象。
谢谢!
@Override
public void onDraw(Canvas canvas) {
if(firstRun){
width = getMeasuredWidth();
height = getMeasuredHeight();
MazeMake();
invalidate();
}else
for (int i = 0; i < c; i++)
for (int j = 0; j < r; j++) {
grid[i][j].paintSq(canvas);
}
}
@Override
protected void onMeasure(int wMeasureSpec, int hMeasureSpec) {
int measuredHeight = measure(hMeasureSpec);
int measuredWidth = measure(wMeasureSpec);
setMeasuredDimension(measuredHeight, measuredWidth);
}
private int measure(int measureSpec) {
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
if (specMode == MeasureSpec.UNSPECIFIED)
return 500;
else {
return specSize;
}
}