上節課我們學習如何畫乙個圓,今天我們來繼續自定義view之路。
今天講的列子是我今天給朋友講的乙個自定義view的列子,這節課我們將實現自適應的寬高。
首先來自定義我們的屬性:
<?xml version="1.0" encoding="utf-8"?>
下面來看我們的布局**:
<?xml version="1.0" encoding="utf-8"?>
linearlayout xmlns:android=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
下面是我們的關鍵自定義的view類:
首先看下我們的建構函式 public myview(context context)
public myview(context context, attributeset attrs)
public myview(context context, attributeset attrs, int defstyleattr)
我們在布局寫的是wrap_content,所以我們今天要在onmeasure方法中來測量我們view的寬高。
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec) else
}/**
* 高度
*/int heigthmode = measurespec.getmode(heightmeasurespec);
int heightsize = measurespec.getsize(heightmeasurespec);
//這個模式是有指定具體的值,如:android:layout_width="match_parent" android:layout_width="200dp"
if(heigthmode == measurespec.exactly)else
}setmeasureddimension(width,height);
}
下面我們就可以通過ondraw方法畫出我們要的效果:
@override
protected void ondraw(canvas canvas)
我們執行看下效果: Android自定義View 自定義元件
自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...
Android自定義View實現
android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...
Android 自定義View 一
android的ui介面都是由view和viewgroup及其派生類組合而成的。其中,view是所有ui元件的基類,而viewgroup是容納這些元件的容器,其本身也是從view派生出來的。androidui介面的一般結構可參見下面的示意圖 可見,作為容器的viewgroup可以包含作為葉子節點的v...