編輯:Android游戲開發
在上一節View類與SurfaceView類中,講解了View類和SurfaceView類的區別。本節將詳解View類的用法,從View類開始著重的介紹Android圖形顯示基類的相關方法和注意點。
View類常用方法
自定義View的常用方法:
onFinishInflate() 當View中所有的子控件均被映射成xml後觸發
onMeasure(int, int) 確定所有子元素的大小
onLayout(boolean, int, int, int, int) 當View分配所有的子元素的大小和位置時觸發
onSizeChanged(int, int, int, int) 當view的大小發生變化時觸發
onDraw(Canvas) view渲染內容的細節
onKeyDown(int, KeyEvent) 有按鍵按下後觸發
onKeyUp(int, KeyEvent) 有按鍵按下後彈起時觸發
onTrackballEvent(MotionEvent) 軌跡球事件
onTouchEvent(MotionEvent) 觸屏事件
onFocusChanged(boolean, int, Rect) 當View獲取或失去焦點時觸發
onWindowFocusChanged(boolean) 當窗口包含的view獲取或失去焦點時觸發
onAttachedToWindow() 當view被附著到一個窗口時觸發
onDetachedFromWindow() 當view離開附著的窗口時觸發,Android123提示該方法和 onAttachedToWindow() 是相反的。
onWindowVisibilityChanged(int) 當窗口中包含的可見的view發生變化時觸發
以上是View實現的一些基本接口的回調方法。
View類方法的重載
一般我們需要處理畫布的顯示時,重寫onDraw(Canvas)用的的是最多的:
Java代碼當然還有就是處理窗口還原狀態問題(一般用於橫豎屏切換),除了在Activity中可以調用外,開發游戲時我們盡量在View中使用如下代碼:
Java代碼在View中如果需要強制調用繪制方法onDraw,可以使用invalidate()方法,它有很多重載版本,同時在線程中的postInvailidate()方法在後面的教程中會講到。