自定义View
自定義view主要有三大步驟:測量,繪制,觸摸反饋。
?
繪制:
重寫主體內容的繪制方法onDraw()。
繪制的關鍵:Canvas,Paint。Canvas對象的DrawXX()可以繪制三角,方形,圓,弧等等圖形,ClipXX為裁剪。paint對象存放著繪制的畫筆,顏色、大小、是否平滑等信息。
?
測量:測量的方法是onMeasure()。
從最頂級的root View遍歷子View,分別調用各自的onMeasure()方法來保存自己測量的信息。
完全自定義大小信息:1,不用重寫super.onMeasure(); 2,得滿足父View給的尺寸限制。
?
觸摸反饋:在用戶觸摸屏幕時會產生一系列觸摸事件,按下:ACTION_DOWN、移動:ACTION_MOVE、抬起:ACTION_UP。
每產生一個觸摸事件時都會先從最底層的View遍歷是否攔截該事件,如果攔截事件則會調用該View的onTouchEvent();
???????????????? 如果沒有被攔截,會從最接近用戶觸摸的view來消費事件:onTouchEvnet返回true。否則一步步遞交到上層view處理。
?
?
Layout:
onMeasure:1,遍歷每一個子View,通知他們各自測量自己的尺寸。 子View的layout_xx信息通過getLayoutParams獲取。
2,根據子View的尺寸,計算他們各自的位置信息
3,根據子View的尺寸和文字,保存自己的尺寸。
?
onLayout:遍歷每一個子View,調度Layout()方法。
?
轉載于:https://www.cnblogs.com/halo-yang/p/9693133.html
總結
- 上一篇: C#显示相机实时画面
- 下一篇: 股神小L