android 自定義view 一

2021-07-24 12:50:57 字數 2562 閱讀 9329

android自定義控制項分為兩類,一類是繼承view,一類是繼承viewgroup。由於直接繼承viewgroup是在子view的基礎上進行測量和定位的。自定義view大體上可以分類三類:

接下來分析如何做,我們先看整體**

public class 

customerrunline

extends

view

public

customerrunline

(context

context,

attributeset

attrs)

public

customerrunline

(context

context,

attributeset

attrs,

int

defstyleattr)

@overrideprotected void

ondraw

(canvas

canvas)

else

//這是實現具體畫線的啦

float

start

= startx

;

while

(start

<

sw)

start

= startx

- h

- space

;

while

(start

>= -

h)

invalidate();//這裡是實現連續呼叫,否則只呼叫一下 }}

attrs.xml內容
<

declare-styleable

name=

"customerview"

>

<

attr

name=

"c_h"

format=

"dimension"

>

attr

>

<

attr

name=

"c_w"

format=

"dimension"

>

attr

>

<

attr

name=

"c_color"

format=

"color"

>

attr

>

declare-styleable

>

然後我們就可以在

activity_main.xml布局中呼叫了,怎麼看貼**

<?xml version=

"1.0"

encoding=

"utf-8"?>

<

linearlayout

xmlns:

android=

""xmlns:

=""android:layout_width=

"match_parent"

android:layout_height=

"match_parent"

android:orientation=

"vertical"

>

<

test.com.test.customerrunline

android:layout_width=

"match_parent"

android:layout_height=

"10dp"

android:paddingbottom=

"50dp"

:c_color=

"#ef5621"

:c_h=

"80dp"

:c_w=

"4dp"

/>

linearlayout

>

其中這三個值代表我們自定義控制項的屬性啦,就是滾動條的顏色,寬度,高度,這裡命名不好了,將就著看吧

:c_color=

"#ef5621"

:c_h=

"80dp"

:c_w=

"4dp"

最後我們在看看activity的**很簡單啦

public class 

mainactivity

extends

}

好了,到目前為止你就可以看到,剛開始的效果啦。

Android 自定義View 一

android的ui介面都是由view和viewgroup及其派生類組合而成的。其中,view是所有ui元件的基類,而viewgroup是容納這些元件的容器,其本身也是從view派生出來的。androidui介面的一般結構可參見下面的示意圖 可見,作為容器的viewgroup可以包含作為葉子節點的v...

Android自定義View 一 View的測量

想要讓系統繪製出你所需要的圖形,就必須告訴系統view的大小,所以,在繪製view時,先實現view的onmesure 方法。在測量view之前,要先了解measurespec這個類,measurespec物件中包含了測量的模式和測量的大小 measurespec.exactly 精確模式 當我們將...

Android自定義View 自定義元件

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