Android自身提供了許多widgets,但是有時候這些widgets並不能滿足我們的需求,這時我們就需要自定義View,本文會詳細說明自定義View的各種理論基礎,只有理解了這些知識,我們才能更好地實現各種功能的控制元件。
我覺得自定義View中最重要的部分就是繪圖和互動,自定義的繪圖使得你的View與眾不同,互動使使用者可以與你的View進行互動,而繪圖的前提是View的量算與佈局,互動的基礎是觸控事件,所以量算、佈局、繪圖、觸控事件這些是自定義View的核心。
除此之外,一個設計友好的自定義View還應該可以像Android中自帶的widget一樣在XML中定義屬性,本文也會對此進行介紹。
- 量算、佈局及繪圖機制概述
Android中View的量算、佈局及繪圖機制 - 量算
原始碼解析Android中View的measure量算過程 - 佈局
原始碼解析Android中View的layout佈局過程 - 繪圖
Android中Canvas繪圖基礎詳解(附原始碼下載)
Android中Canvas繪圖之PorterDuffXfermode使用及工作原理詳解
Android中Canvas繪圖之Shader使用圖文詳解
Android中Canvas繪圖之MaskFilter圖文詳解(附原始碼下載)
Android中GPU硬體加速控制及其在2D圖形繪製上的侷限
圖文詳解Andorid中用Shape定義GradientDrawable - 觸控事件
Android中的MotionEvent
Android中TouchEvent觸控事件機制 - 定義XML屬性
Android中View自定義XML屬性詳解以及R.attr與R.styleable的區別
希望本文對大家有所幫助,後面會多寫一些自定義View例項的文章。