自定義view筆記彙總

2021-08-26 05:23:55 字數 1285 閱讀 2877

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...