android學習筆記,整理給自己複習的時候看的,謝謝!
1. 自定義開關
// 1. 宣告介面物件
public
inte***ce onswitchstateupdatelistener
// 2. 新增設定介面物件的方法, 外部進行呼叫
public
void
setonswitchstateupdatelistener(
onswitchstateupdatelistener onswitchstateupdatelistener)
// 3. 在合適的位置.執行介面的方法
onswitchstateupdatelistener.onstateupdate(state);
// 4. 介面/外部, 收到事件.
1. 在attrs.xml宣告節點declare-styleable
name="toggleview">
name="switch_background"
format="reference" />
name="slide_button"
format="reference" />
name="switch_state"
format="boolean" />
declare-styleable>
2. r會自動建立變數
attr 3個變數
styleable 乙個int陣列, 3個變數(儲存位置)
3. 在xml配置宣告的屬性/ 注意新增命名空間
xmlns:itheima=""
itheima:switch_background="@drawable/switch_background"
itheima:slide_button="@drawable/slide_button"
itheima:switch_state="false"
4. 在建構函式中獲取並使用
// 獲取配置的自定義屬性
string namespace = "";
int switchbackgroundresource = attrs.getattributeresourcevalue(namespace , "switch_background", -1);
測量 擺放 繪製
measure -> layout -> draw
| | |
onmeasure -> onlayout -> ondraw 重寫這些方法, 實現自定義控制項
都在onresume()之後執行
view流程
onmeasure() (在這個方法裡指定自己的寬高) -> ondraw() (繪製自己的內容)
viewgroup流程
onmeasure() (指定自己的寬高, 所有子view的寬高)-> onlayout() (擺放所有子view) -> ondraw() (繪製內容)
2.側滑面板
在xml布局裡擺放內容. include
在自定義viewgroup裡, 進行measure測量, layout布局
響應使用者的觸控事件
int scrollx = (int) (downx - movex);
getscrollx()獲取當前滾動到的位置
平滑動畫
//1. 開始模擬資料
scroller.startscroll(startx, 0, dx, 0, duration);
invalidate();// 重繪介面 -> drawchild() -> computescroll();
//2. 在computescroll中不斷獲取模擬的數值
@override
public
void
computescroll()
}
鬆手之後根據當前的paddingtop決定是否執行重新整理
Android 自定義控制項
幹android也有一段的時間了,自定義這塊的東西覺得還是很有比較複習一下基礎的東西。自定義控制項和自定義元件基本上的使用都是在專案中基本的android控制項滿足不了需求的時候使用的。所以,如果要高出特別炫的特效,或者比較特殊的控制項排列方式,例如瀑布流,那麼就要好好學學自定義咯。首先,先簡單的介...
android自定義控制項
android自定義控制項 二 入門,繼承view 說說android 兩種為自定義元件新增屬性的使用方法和區別 自定義控制項的屬性 自定義控制項 今天花了3,4個小時看了自定義控制項,看 懂了,還沒有實踐,因為時間不夠,日後實踐。總結下 自定義控制項有3種方式 繼承已有控制項 繼承乙個容器控制項,...
Android自定義控制項
在android中,無論是熟知的布局,還是控制項,統統全都繼承自基類view。自定義view實現有幾種 view的繪製基本由measure layout draw 這個三個函式完成 在android座標系中,以螢幕左上角作為原點,這個原點向右是x軸的正軸,向下是y軸正軸。結合以上的api,可以計算出...