我正在創建新的ViewGroup
。新視圖將繪製一些圓圈。該視圖應該有5個初始圓圈,所以我希望將它們均勻地分佈在視圖的寬度上,並且還要跟蹤它們(它們的中心(x,y)位置),以便在視圖爲無效。什麼時候應根據其尺寸繪製自定義佈局
這是我onMeasure
:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int desiredWidth = getPaddingLeft() + getPaddingRight() + PREFERED_SIZE;
int desiredHeight = getPaddingTop() + getPaddingBottom() + PREFERED_SIZE;
actualWidth = resolveSizeAndState(desiredWidth,widthMeasureSpec,0);
actualHeight = resolveSizeAndState(desiredHeight,heightMeasureSpec,0);
setMeasuredDimension(actualWidth, actualHeight);
}
什麼我不知道的是當我要補充這些圈子。 onMeasure
可以多次調用,並獲得不同的寬度和高度值,所以我不知道什麼時候應該計算初始圓圈的(x,y)..在onMeasure
裏面?在onDraw
開頭?
它看起來幾乎完全像onMeasure? –
不完全,'onMeasure'被調用的次數多於'onLayoutChange'。每當父視圖需要計算佈局時調用onMeasure,而當特定視圖的佈局更改時調用onLayoutChange。 –