<?xml version="1.0" encoding="utf-8"?>
xmlns:android
=""android:layout_width
="fill_parent"
android:layout_height
="60dip"
>
android:id
="@+id/tv_title"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_alignparentleft
="true"
android:layout_marginleft
="5dip"
android:layout_margintop
="5dip"
android:textcolor
="#000000"
android:textsize
="20dip"
/>
android:id
="@+id/tv_desc"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_below
="@+id/tv_title"
android:layout_marginleft
="5dip"
android:layout_marginbottom
="5dip"
android:textcolor
="#99000000"
android:textsize
="18dip"
/>
android:clickable
="false"
android:focusable
="false"
android:id
="@+id/cb_status"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_alignparentright
="true"
android:layout_centervertical
="true"
android:layout_marginright
="20dip"
/>
android:layout_width
="fill_parent"
android:layout_height
="0.2dip"
android:layout_alignparentbottom
="true"
android:layout_alignparentleft
="true"
android:layout_marginleft
="5dip"
android:layout_marginright
="5dip"
android:background
="#000000"
/>
relativelayout
>
<?xml version="1.0" encoding="utf-8"?>
>
name
="textview"
>
name
="title"
format
="string"
/>
name
="desc_on"
format
="string"
/>
name
="desc_off"
format
="string"
/>
declare-styleable
>
resources
>
iniview(context context)初始化自定義的布局檔案
根據需求自定義一些api方法
public
class
settingitemview
extends
relativelayout
public
settingitemview
(context context, attributeset attrs,
int defstyle)
public
settingitemview
(context context, attributeset attrs)
public
settingitemview
(context context)
public
boolean
ischecked()
public
void
setchecked
(boolean checked)
else
cb_status.
setchecked
(checked);}
public
void
setdesc
(string text)
}
別忘記宣告自定義命名空間
xmlns:victor=「
<?xml version="1.0" encoding="utf-8"?>
xmlns:android
=""xmlns:victor
=""android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:orientation
="vertical"
>
android:id
="@+id/siv_update"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
victor:desc_off
="自動更新關閉"
victor:desc_on
="自動更新開啟"
victor:title
="設定自動更新"
>
com.victor.mobilesafe.ui.settingitemview
>
linearlayout
>
自定義乙個view 一般來說,繼承相對布局,或者線性布局 viewgroup;
實現父類的構造方法。一般來說,需要在構造方法裡初始化自定義的布局檔案;
根據一些需要或者需求,定義一些api方法;
根據需要,自定義控制項的屬性,可以參照textview屬性;
自定義命名空間,例如:
xmlns:victor=「
《包名》」
xmlns:victor=「
自定義我們的屬性,在res/values/attrs.xml
使用我們自定義的屬性
例如:itheima:title=「設定自動更新」
itheima:desc_on=「設定自動更新已經開啟」
itheima:desc_off=「設定自動更新已經關閉」
在我們自定義控制項的帶有兩個引數的構造方法裡attributeset attrs 取出我們的屬性值,關聯自定義布局檔案對應的控制項;
Android自定義控制項之自定義組合控制項(三)
前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...
Android自定義控制項之自定義組合控制項
前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...
Android 自定義組合控制項,屬性
1.建立自定義控制項繼承relativelayoutpublic class settingview extends relativelayout1.在values attrs.xml 布局中使用 a.命名空間 xmlns itheima 包名 b.控制項中使用 包名.ui.settingview ...