標籤:android 控制項 ui activity
Android-UI基礎
一 UI和UI介面
UI就是使用者介面
UI繼承View這個基類,看View的原始碼
UI的基本架構,附上一張圖:
二 常用概念
UI的呈現,UI的事件,UI的布局
控制項樹的概念:ViewGroup下面又可以有ViewGroup或者View
三 自訂介面view
1 自訂View類繼承自系統的View,
2 然後在Activity中執行個體化自訂View類的對象x
3 最後setContentView(x)
可以進行代碼跟蹤
1 Activity->phonewindow->view->layout
2 Activity->phonewindow->doceview
3 canvas內的畫圖的方法
4 view類onDraw
四 介面組件呈現的底層機制
1 surface下是映像顯示驅動,字元裝置驅動:framebuffer
2 skia:2D類庫
3 OpenGL:3D類庫
如:
五 Android介面事件機制
1 事件分類:
KeyEvent:硬鍵盤的點擊事件
TouchEvent:觸摸事件
View和Activity都有上面兩種事件機制
TrackballEvent:軌跡球事件
2 事件觸發的兩種方法:
內部方法:
擴充View的時候回調相應的事件函數
onKeyUp
onTouchEvent
注意,需要設定自訂控制項的焦點
setFocusable(true);
setFocusableInTouchMode(true);
外部方法:
註冊事件監聽器
3 時間分發dispatchKeyEvent:
KeyEvent分發:
訊息發到當前上下文
context發到window
window優先發給IME表單
發給rootView(DecorView)
發給焦點View(事件接收機制預設返回false,允許下一步接受)
自訂控制項->linux通過pipe進程間通訊傳給->Activity->phonewindows->rootview->焦點view
TouchEvent分發:
從下往上:
自訂控制項->rootview->phonewindow->activity
六 自訂介面的呈現
介面呈現機制:
1 呈現的兩種方式:
xmlLayout呈現
動態編碼實現:動態布局和畫動態控制項
2 呈現的核心:onDraw方法的使用
七 補充
使用者互動設計師:給出具體的想法和UI圖
視覺美工師:實現想法->真正的介面
介面實現:程式員或者是編碼能力強的視覺設計師
介面為何用xml:可以分離,程式員可以不去管xml的layout,讓視覺設計師實現
八 面試題
1 View是所有控制項的基類,說說他和Activity和window的關係
2 view的核心是什麼,能否說下裡面的onDraw函數
3 自訂群組件如何?自訂事件
4 NinePatch是什嗎?要求會使用
5 介紹下Android的介面事件機制
Android-UI基礎