我做了一個擴展視圖的類,這是onDraw方法。該程序創建一個迷宮,並得到一個適當的高度和寬度的閱讀,我似乎需要在onDraw方法中調用它們(否則它只會返回0)。這可能是什麼東西搞砸了。但是,它會根據繪製的視圖部分中可見方塊的間距獲得正確的高度。ANDROID:我的自定義視圖沒有完全繪製
看起來未上色的視圖部分與上下文菜單的大小有關,並且與備用不匹配。我尋找其他人有這個問題,似乎沒有人有這個問題,我可以告訴,我沒有做任何與他們有特別不同的事情。如果有任何其他見解我可以提供,請讓我知道。
我不能發佈圖片的又一因爲我在這整個堆棧溢出的東西=新( 因此,我想是最好的,我可以解釋的現象。
謝謝!
@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;
}
}
我在原帖中添加了詳細說明這些方法的代碼。 specMode最終沒有被指定? – Matt 2010-12-22 17:14:56