android自定義控制項分為兩類,一類是繼承view,一類是繼承viewgroup。由於直接繼承viewgroup是在子view的基礎上進行測量和定位的。自定義view大體上可以分類三類:
接下來分析如何做,我們先看整體**
public classwhilecustomerrunline
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
;
(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...