Android 6步教你自定義View

2021-07-26 19:26:12 字數 1638 閱讀 1341

標籤: android

view

2017-02-09 17:00

119人閱讀收藏 

舉報

android(203)

目錄(?)

[+]

如果你打算完全定製乙個view,那麼你需要實現view類(所有的android view都實現於這個類),並且實現確定尺寸的onmeasure(…))方法和確認繪圖的ondraw(…))方法。

public

class

smileyview

extends

view

public

smileyview(context context, attributeset attrs)

public

smileyview(context context, attributeset attrs, int defstyleattr)

private

void

initpaints()

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

@override

protected

void

ondraw(canvas canvas)

}

本文一共兩隻畫筆

private void initpaints()
實現這個方法告訴了母容器如何放棄自定義view,可以通過提供的measurespecs來決定你的view的高和寬,以下是乙個正方形,確認它的寬和高是一樣的。

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

這個方法需要至少保證乙個setmeasureddimension(..)呼叫,否則會報illegalstateexception錯誤。

這個方法是你獲取view現在的寬和高. 這裡我們計算的是中心和半徑。

@override

protected

void

onsizechanged(int w, int h, int oldw, int oldh)

這個方法提供了如何繪製view,它提供的canvas類可以進行繪製。

@override

protected

void ondraw(canvas canvas)

""

android:layout_width="match_parent"

android:layout_height="match_parent">

.example

.smileyview

android:layout_width="match_parent"

android:layout_height="match_parent" />

Android 6步教你自定義View

如果你打算完全定製乙個view,那麼你需要實現view類 所有的android view都實現於這個類 並且實現確定尺寸的onmeasure 方法和確認繪圖的ondraw 方法。自定義view一共分為6步 第一步 public class smileyview extends view public...

Android開發之6步教你自定義view

如果你打算完全定製乙個view,那麼你需要實現view類 所有的android view都實現於這個類 並且實現確定尺寸的onmeasure 方法和確認繪圖的ondraw 方法。效果圖 第一步 繼承view,實現構造方法 public class smaileview extends view pu...

教你搞定Android自定義View

android所有的控制項都是view或者view的子類,它其實表示的就是螢幕上的一塊矩形區域,用乙個rect來表示,left,top表示view相對於它的parent view的起點,width,height表示view自己的寬高,通過這4個字段就能確定view在螢幕上的位置,確定位置後就可以開始...