Android群英傳小總結

2021-08-08 19:24:03 字數 3188 閱讀 6907

看書的總結參考資料(android群英傳)

1.1控制項架構

activity-phonewindow-decorview(titleview,contentview)

1.2view的測量

1)onmeasure()方法

2)measurespec類是乙個32位int值,高2位是測量模式,低30是測量大小

3)測量模式有exactly(精確模式)、at_most(最大值模式)、unspecified(未定義大小,一般用於自定義view)

獲取模式例如:int specmode = measurespec.getmode(measurespec);

判斷模式例如:specmode == measurespec. exactly

1.3view 的繪製

1)ondraw()

2)onfinishinflate():從xml載入完元件後呼叫

3)onsizechanged():元件大小改變時呼叫

4)如果是viewgroup還有布局方法onlayout()

1.4自定義屬性

1)建立attr.xml檔案

2)**獲取上面布局檔案,並給控制項設定屬性

例如:typedarray ta=context.obtainstyleattributes(attrs,r.styleable.name);

mbg = ta.getdrawable(r.styleable.name_propertyname,0);

mbutton.setbackground(mbg);

3)自定義介面

4)引用檔案

注意指定名字空間

xmln:android=

1.5事件攔截機制

例如a-b-c

完整流程是:a的dispatchtouchevent—a 的onintercepttouchevent

b的dispatchtouchevent—b 的onintercepttouchevent

c的dispatchtouchevent—c 的ontouchevent

b的ontouchevent-a的ontouchevent

只要ontouchevent沒有返回true就會執行下乙個的ontouchevent直到結束

2.1常規技巧

viewholder/ convertview

android:divider=」@android:color/darker_gray」 設定分割線

android:scrollbars=」none」 隱藏滾動條

listview.setselection(n) 指定顯示第n條item

madapter.notifydatasetchanged(); 動態更新

listview.setemptyview(empty_view); 注意empty布局和listview在一起。

2.2listview的監聽事件

1)ontouchlistener(down/move/up事件);

2)onscrolllistener其中onscrollstatechanged(scroll_state_idle

停止/scroll_state_itouch_scroll滑動/scroll_state_ifling用手指滑動離開時的慣性滑動狀態);onscroll()滾動時一直呼叫

2.3lisview的特殊方法

1)overscrollby:重寫它可以設定listview下拉距離

2)getitemviewtype():判斷載入不同布局樣式的表標識

3.1獲取座標的方法

3.2實現滑動的方法

1)onlayout(通過原座標+偏移量)

2)offsetleftandright(offsetx)和offsettopandbottom(offsety)根據偏移量呼叫該方法

3)layoutparams(動態修改布局位置)

4)scrollto(x,y)表示移動到摸個具體的座標;scrollby(offset,offsety)表示移動的增量也就是偏移量.注意以上兩個方法移動是數瞬間完成的

5)scroller可以平滑的移動

6)屬性動畫

7)viewdraghelper

4.1螢幕的一些概念

1)解析度、dpi(每英吋畫素)、px和dp的轉換、px和sp的轉換

2)canvas畫線、形狀等

3)xml繪圖bitmap標籤、shape標籤、layer標籤(類似於ps圖層)、selector(不同事件獲得不同狀態)

4)su***ceview(使用場景頻繁重新整理或者重新整理時資料處理較大可以考慮使用)

5.1tween(補間動畫)

alpha(透明)、rotate(旋轉)、translate(位移)、scale(縮放)、animationset(動畫集合)

5.2frame(幀動畫)

5.3object(屬性動畫)

通過靜態工廠的方式返回乙個objectanimator物件;propertyvaluesholder(實現動畫集合);

animatorset(實現動畫集合);

5.4自定義動畫

5.5 android5.x svg向量動畫6.1狀態

running paused stopped killed

6.2生命週期(七種)

oncreate onstart (可見)onresume(獲得焦點) onpause(失去焦點) onstop(不可見) ondestory onrestart

6.3啟動模式

standard singletop singletask singleinstance

7.1布局優化

include、 viewstub

7.2記憶體優化

靜態儲存:編譯的時候就存在的,一般是static

棧:一般存放基本資料型別和物件的引用,物件本身儲存在堆中

堆:用來存放用new建立的物件和陣列

7.3使用工具分析、優化

1)bitmap的優化:使用適當的解析度,及時**,使用快取

2)**優化:使用靜態方法、static修飾常量、減少不必要的成員變數、對資源注意**解註冊等、避免使用ioc框架、盡量使用檢視快取、使用su***ceview替換view進行頻繁的繪圖。

Android群英傳小總結

看書的總結參考資料 android群英傳 1.1控制項架構 activity phonewindow decorview titleview,contentview 1.2view的測量 1 onmeasure 方法 2 measurespec類是乙個32位int值,高2位是測量模式,低30是測量大...

效能優化 Android群英傳

1 布局優化 1 避免overdraw 2 優化布局層級 降低view樹的高度。3 避免巢狀過多無用布局 4 使用標籤重用layout 5 使用實現view的延遲載入,是乙個輕量級的元件,不僅不可視,而且大小為0.需要的時候再顯示。兩種方式顯示這個view。mviewstub.setvisibili...

群英傳學習筆記

內容一 activity的任務棧 singletop的應用場景 這種啟動模式通常適用於接收到資訊後顯示的介面,例如qq接收到訊息後彈出actvity,如果一次來10條簡訊,總不能一次彈10個activity。singletask的應用場景 可以發現,使用這個模式建立的activity不是在新的任務棧...