自定義View學(xué)習(xí)之路

學(xué)習(xí)自GcsSloop扩然,鏈接地址梳星;

同時參考任玉剛的Android開發(fā)藝術(shù)探索

記錄下自己不熟悉的地方菜秦。

一、.MotionEvent中 get 和 getRaw 的區(qū)別

event.getX()和event.getY() ? ? ? //觸摸點相對于其所在組件坐標(biāo)系的坐標(biāo),也就是相對于自身來說

event.getRawX()和event.getRawY;? ? //觸摸點相對于屏幕默認坐標(biāo)系的坐標(biāo),相對于整個屏幕來說


以前不知道區(qū)分這兩個概念咱枉,順便把作者的圖拿來了卑硫。相當(dāng)直觀。

二蚕断、角度和弧度

角度:兩條射線從圓心向圓周射出欢伏,形成一個夾角和夾角正對的一段弧。當(dāng)這段弧長正好等于圓周長的360分之一時亿乳,兩條射線的夾角的大小為1度.(即將整個圓分為360份硝拧,夾角所對應(yīng)的弧長所占的比例即為該夾角的角度)

弧度:兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧风皿。當(dāng)這段弧長正好等于圓的半徑時河爹,兩條射線的夾角大小為1弧度.(圓弧長對半徑的比值即為弧度,園轉(zhuǎn)一圈是2π弧度.)

等價關(guān)系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)

rad 是弧度桐款, deg 是角度

rad = deg x π / 180 ?

弧度=角度*π/180

deg = rad x 180 / π

角度=弧度x 180 / π

公式就是看著比較頭疼啊咸这。。魔眨。當(dāng)年數(shù)學(xué)還是不錯的媳维。結(jié)果現(xiàn)在發(fā)現(xiàn)都快忘光了==、這次正好復(fù)習(xí)下


在默認的屏幕坐標(biāo)系中左上為原點遏暴,角度增大方向為順時針侄刽。

三、自定義View分類與流程

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 自定義View繪制流程函數(shù)調(diào)用鏈(簡化版)


3.1自定義View的分類

? ? 1.自定義ViewGroup

? ? ?1.1繼承ViewGroup派生特殊的Layout

? ? ? 這種方法主要用于實現(xiàn)自定義的布局朋凉,即除了系統(tǒng)布局以外的布局州丹,采用這種方式需要處理ViewGroup的測量、布局杂彭,還得處理子元素的測量和布局過程墓毒,比較麻煩。?

? ? ? 1.2繼承特定的ViewGroup

? ? ? ?當(dāng)需要某種效果看起來像幾種View組合在一起的時候亲怠,可以采用這種方式實現(xiàn)所计,采用這種方式不要自己處理ViewGroup的測量和布局,一般來說上個方式能實現(xiàn)的這個也可以實現(xiàn)团秽,不過上種方式更接近View的底層主胧。

? ? ?2.自定義View

? ? ?2.1繼承View重寫onDraw方法

? ? ? ? 主要是重寫onDraw方式叭首,需要自己支持wrap_content和padding的處理。

? ? ?2.2繼承特定的View

? ? ? ? 直接繼承已有的View踪栋,進行功能的拓展

3.2測量View大小(onMeasure)

在onMeasure方法中焙格,參數(shù)為intwidthMeasureSpec, intheightMeasureSpec,但是這不是寬和高己英,而是由寬间螟、高和各自方向上對應(yīng)的測量模式來合成的一個值,(這句還是不太理解)

可以通過MeasureSpec.getSize(widthMeasureSpec);得到具體的寬高

注意:

如果對View的寬高進行修改了损肛,不要調(diào)用super.onMeasure(widthMeasureSpec,heightMeasureSpec);要調(diào)用setMeasuredDimension(widthsize,heightsize);這個函數(shù)。

3.3.確定View大小(onSizeChanged)

onSizeChanged中的寬高就是最終的寬高

其他的都是實踐為主了荣瑟。治拿。暫不記錄了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笆焰,隨后出現(xiàn)的幾起案子劫谅,更是在濱河造成了極大的恐慌,老刑警劉巖嚷掠,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捏检,死亡現(xiàn)場離奇詭異,居然都是意外死亡不皆,警方通過查閱死者的電腦和手機贯城,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霹娄,“玉大人能犯,你說我怎么就攤上這事∪埽” “怎么了踩晶?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枕磁。 經(jīng)常有香客問我渡蜻,道長,這世上最難降的妖魔是什么计济? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任茸苇,我火速辦了婚禮,結(jié)果婚禮上峭咒,老公的妹妹穿的比我還像新娘税弃。我一直安慰自己,他們只是感情好凑队,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布则果。 她就那樣靜靜地躺著幔翰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪西壮。 梳的紋絲不亂的頭發(fā)上遗增,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音款青,去河邊找鬼做修。 笑死,一個胖子當(dāng)著我的面吹牛抡草,可吹牛的內(nèi)容都是我干的饰及。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼康震,長吁一口氣:“原來是場噩夢啊……” “哼燎含!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腿短,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤屏箍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后橘忱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赴魁,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年钝诚,在試婚紗的時候發(fā)現(xiàn)自己被綠了颖御。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡敲长,死狀恐怖郎嫁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祈噪,我是刑警寧澤泽铛,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站辑鲤,受9級特大地震影響盔腔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜月褥,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一弛随、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宁赤,春花似錦舀透、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽走贪。三九已至,卻和暖如春惑芭,著一層夾襖步出監(jiān)牢的瞬間坠狡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工遂跟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逃沿,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓幻锁,卻偏偏與公主長得像凯亮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子越败,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容