初學自定義View

2021-08-13 09:26:02 字數 1475 閱讀 8337

1.自定義view的屬性

首先在res/values/  下建立乙個attrs.xml , 在裡面定義我們的屬性和宣告我們的整個樣式。我們定義了字型,字型顏色,字型大小3

個屬性,format是值該屬性的取值型別:

<?xml version="1.0" encoding="utf-8"?>

2.首先在布局中申明乙個自定義view

android:id="@+id/pytcricle"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

3.建立circleimage類繼承view

4.重寫兩個構造方法

public circleimage(context context) 

public circleimage(context context, attributeset attrs)

5.重寫onmeasure

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec) else

setmeasureddimension(width, height);

}

在onmeasure中對view尺寸進行規劃,邊界引數——widthmeasurespec和heightmeasurespec ,效率的原因以整數的方式傳入。在

它們使用之前,首先要做的是使用

measurespec類的靜態方法getmode和getsize來譯解

,如下面的片段所示:

private int getmysize(int defaultsize, int measurespec) 

case measurespec.at_most:

case measurespec.exactly:

}return mysize;

}

依據specmode的值,(

measurespec有3種模式分別是unspecified, exactly和at_most)

.如果是at_most,specsize 代表的是最大可獲得的空間;

.如果是exactly,specsize 代表的是精確的尺寸;

.如果是unspecified,對於控制項尺寸來說,沒有任何參考意義。

6.重寫ondraw()方法

@override

protected void ondraw(canvas canvas)

最終結果

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

自定義view之自定義屬性

1.首先在res的values檔案下新建乙個名為attrs.xml檔案 在該xml檔案中編寫我們需要的屬性 declare styleable後面的name必須要與接下來要自定義的view名一致。attr 後面的name表示需要自定義的屬性,format表示這些屬性的型別 2.新建乙個類繼承text...

自定義view 二

自定義view的最重要的乙個部分是自定義它的外觀。根據你的程式的需求,通過ondraw方法實現繪製。在ondraw中,會傳遞給你乙個canvas。canvas封裝了繪製圖形的方法。還需要自定義乙個 paint去定義顏色樣式的填充 簡單來說 canvas定義你在螢幕上畫的圖形,而paint定義顏色,樣...