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定義顏色,樣...