看書的總結參考資料(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不是在新的任務棧...