import android.content.context;
import android.content.res.typedarray;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.util.attributeset;
import android.view.view;
public class circleview extends view
public circleview(context context, attributeset attrs)
public circleview(context context,attributeset attrs,int defstyleattr)
關於三個建構函式使用時機的說法,如下:
⑴、在**中直接new乙個circleview例項的時候,會呼叫第乙個建構函式
⑵、在xml布局中呼叫circleview的時候,會呼叫第二個建構函式
⑶、在xml布局檔案中呼叫circleview,並且circleview標籤中還有自定義屬性時,呼叫的還是第二個建構函式
也就是說,系統預設只會呼叫circleview的前兩個建構函式,至於第三個建構函式的呼叫,通常是我們自己在建構函式中主動呼叫的(例如,在第二個建構函式中呼叫第三個建構函式)
至於自定義屬性的獲取,通常是在建構函式中通過obtainstyledattributes函式實現的
二、直接繼承view的自定義控制項需要重寫onmeasure方法並設定wrap_content時自身的大小,否則在布局中使用wrap_content就相當於使用match_parent。原因的話需要分析原始碼方可得知。設定的**如下(以200px為例):
protected void onmeasure(int widthmeasurespec,int heightmeasurespec) else if (widthspecmode == measurespec.at_most) else if (heightspecmode == measurespec.at_most)
}
三、canvas.drawcircle()方法的解析
語法:public void drawcircle (float cx, float cy, float radius, paint paint)
引數:
自定義View筆記
1.帶刪除按鈕的listview 將觸控事件交給手勢處理器處理 return gesturedetector.ontouchevent event override public boolean ondown motionevent e return false override public vo...
自定義View筆記 一
注 該筆記是整理學習鴻洋大神自定義view系列部落格的部分知識點。自定義view 自定義控制項 四大步驟 1.自定義view的屬性 2.在view的構造方法中獲取自定義的屬性 3.重寫onmesure 不是選項 4.重寫ondraw 自定義view屬性 在res values下建立乙個attrs.x...
自定義View總結筆記
例項 1 中直接new出來的 public cakeview context context 布局中引用 public cakeview context context,nullable attributeset attrs 布局中應用,並且帶style 不常用 public cakeview co...