2010-12-21 66 views
1

我做了一個擴展視圖的類,這是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; 
} 
} 

回答

0

我明白了。事實證明,我已設法切換setMeasuredDimension(int, int)呼叫的寬度和高度。我認爲我做得這麼恰當,但是在把頭髮拉出來幾小時後,確定事實並非如此。