原创 Android動畫詳解(下)

本篇文章主要介紹屬性動畫,需要了解補間動畫和幀動畫相關知識的,建議閱讀Android動畫詳解(上)。屬性動畫非常強大,運用也非常靈活,爲了便於理解,本文首先從類的角度介紹了屬性動畫的繼承關係,然後針對一些重點類介紹了其內的主要方法

原创 LayoutInflater源碼分析與常見問題解疑

本篇文章主要分析LayoutInflater的inflate方法,並解決inflate方法使用不當造成的問題。 LayoutInflater實際開發中使用較多,動態添加布局、列表適配器設置佈局等場景大多數情況都需要LayoutInfl

原创 Android動畫詳解(上)

說起動畫大家想必都比較熟悉,因爲開發中要經常面對各種各樣的動畫效果。如果遇到一個比較“挑剔”的設計師,在自定義控件和動畫方面沒有兩把像樣的刷子估計就要受盡折磨了。自定義控件除了一些View相關知識比較重要外,動畫也佔相當重要的部分。A

原创 閒聊自定義控件之View滑動

Android的滾動(滑動)有很多種實現方式,如動態改變佈局參數,屬性動畫,Scroller等。這些方式大多是通過View的座標改變來實現的。 佈局參數相關實現方式 這一部分主要包括layout()方法以及設置LayoutParams

原创 閒聊自定義控件之事件分發

Android的事件分發機制相較前面的知識點有點複雜,之所以有這種感覺是因爲這部分的源碼閱讀需要一定的耐心,要屬於剔除“非核心”代碼的影響。特別是在高版本的API中,爲了更好的體驗,增加了大量代碼,但這些代碼對整個事件的流向是沒有影響的。

原创 事件分發實戰——滑動衝突

滑動衝突非常的常見,可能剛開始接觸的時候確實有點讓人摸不着頭腦,但分析總結之後就會發現還是有一定的規律可循。 滑動衝突解決的關鍵點在於對事件分發機制的理解,對於事件的分發機制,上一篇文章(閒聊自定義控件之事件分發)已經對其進行了介紹,如果

原创 閒聊自定義控件之基礎——Paint

下圖是paint中所有有關set的方法,基本涵蓋了paint的所有用法。本篇文章介紹的內容基本上就是圖片裏的方法,爲了便於介紹對這些方法進行了簡單的分類整理。 基礎應用 圖形繪製相關 mPaint.reset();//重置

原创 閒聊自定義控件之View繪製

瞭解View的繪製對自定義控件的開發有着重要的意義,上一篇已經對activity加載UI的流程進行了講解,從中可以看出DecorView是我們的最外層View,是一個FrameLayout的子類,View的繪製也是從DecorView開始

原创 Canvas綜合實戰——沙漏

Canvas其實在前面的幾篇博客中都有過使用,但這些使用一般集中在繪製和畫布變化方面,畫布的快照和裁剪應用很少。下面通過一個沙漏實例演示下這兩部分的使用 效果圖: 說是沙漏確實有點勉強.沒有美工支持,只好從老項目裏扒出來兩張不同顏色

原创 Activity加載UI流程

activity加載UI直觀的起始位置是activity的setContentView方法,進入該方法看到實現如下: public void setContentView(int layoutResID) { getWin

原创 閒聊自定義控件之基礎——Color

提到Color大家都很熟悉,不就是ARGB嘛。其實,除了這些基本的東西之外,有些知識點還是需要稍微注意一下的。下面帶大家一起復習下與Color相關的知識。 ARGB分別是透明度(alpha)、紅(red)、綠(green)、藍(blue)

原创 View繪製實戰——熱門標籤

上一篇文章已經對View繪製的流程進行了講解,並用其解決了ListView的嵌套問題。今天我們再次通過熱門標籤這種常用的自定義控件來演示View繪製的綜合運用。 本篇文章講了熱門標籤這一簡單自定控件的三種實現。其中,前兩種基於onMeas

原创 閒聊自定義控件之基礎——Path

Path在自定義控件裏的使用頻率也相當的高,使用Path不僅能繪製矩形、圓形等常規圖形,還能繪製比較複雜的組合路徑。 基本方法 點的相關操作 moveTo:移動到哪一點 lineTo:連接到哪一點 rMoveTo:移動到哪一點(參考點爲

原创 Path 綜合實戰——滑雪

Path是自定義控件中非常重要的一部分,上一篇閒聊自定義控件之基礎——Path中介紹了Path相關的基礎知識,今天通過一個滑雪的demo,演示下Path相關API的使用。 該demo用到的Path的知識點主要有貝塞爾曲線、Path邏輯運算

原创 閒聊自定義控件之基礎——座標

座標是自定義控件的基礎,例如在處理事件點擊、滾動、動畫等很多情況時都需要座標的相關知識。Android座標與數學中的相差不大,主要使用兩種方式進行描述:絕對座標和相對座標。 Android的座標系是以屏幕的左上角爲原點,向下爲X的正方向,