一、View基礎(chǔ)知識 1.1 View的位置參數(shù) 1.2 TouchSlop TouchSlop是系統(tǒng)所能識別出被認(rèn)為是滑動的最小距離,換句話說,當(dāng)手指在屏幕上滑動時,如果兩...
一、關(guān)鍵詞Behavior 先來介紹一下Behavior,我們在開發(fā)過程中可能會遇到這樣一個小需求,就是在Button點擊滑動的過程中,還額外的需要一個TextView一起跟...
問題一:如何讓系統(tǒng)的控件(TextView)識別自定義屬性? 思路:先看源碼怎么去加載xml中定義的自帶的屬性和View的,入口是PhoneWindow的setContent...
一、源碼解析事件紛發(fā)流程: 步驟一、方法入口:Activity#dispatchTouchEvent() 步驟二、接下來是調(diào)用到ViewGroup#dispatchTouch...
一、屏幕適配概念 1.什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? 屏幕尺寸:指屏幕的對角線的長度,單位:英寸,1英寸=2.54厘米;屏幕分辨率:指橫向和縱向上的像素點數(shù),單位...
前言上一篇再講Draw源碼時,會傳入一個Canvas對象,那么這篇文章我們要來分析Draw和Canvas還有Paint到底有何聯(lián)系。 1.Canvas和Paint的關(guān)系 其實...
前言從前面的幾篇文章我們能夠知道UI的測量和布局?jǐn)[放,那么這次我們來關(guān)注下UI是怎么具體畫出來的,首先要了解的是具體繪制的流程以及Canvas和Paint在這中間所扮演的角色...
View布局?jǐn)[放 在performTraversals的測量performMeasure被調(diào)用之后,我們繼續(xù)往后會看到performLayout的調(diào)用: 代碼中的host就是...
前言上一次我們講到了最基本的android運行流程和繪制流程的調(diào)用順序,我們最終得到一個結(jié)論是activity的生命周期是由系統(tǒng)服務(wù)所觸發(fā),由系統(tǒng)服務(wù)所發(fā)起handle調(diào)用到...
本文的思路:Android程序啟動-->Activity加載并完成生命周期-->setContentView-->圖形繪制。 疑惑: 1.Android程序是如何啟動,Act...
一、ModelLoader Glide通過ModelLoader完成圖片的加載過程封裝。 使用Glide圖片可能存在于文件、網(wǎng)絡(luò)等地方。其中的Model則代表了加載來源模型:...
這一篇是在Glide開發(fā)之旅1的文章上面的擴(kuò)展,這里講到了二級緩存(內(nèi)存+磁盤)再結(jié)合復(fù)用池的理念去寫的一款簡單易懂的demo。 一、內(nèi)存緩存 代碼中通過定義一個LruCac...