一、先說一下大體步驟:
1.寫一個自定義控件類,這個類就是你的自定義控件的實現(xiàn).
2.在res/values目錄下建立一個attrs.xml的文件,在這個文件中增加對控件的自定義屬性的定義.
3.使用帶AttributeSet參數(shù)的類的構(gòu)造函數(shù),并在構(gòu)造函數(shù)中將自定義控件類中變量與attrs.xml中的屬性連接起來.
4.在自定義控件類中使用這些已經(jīng)連接的屬性變量.
5.將自定義的控件類定義到布局用的xml文件中去.
6.在界面中生成此自定義控件類對象,就完成了自定義控件的創(chuàng)建和使用了.
二水泉、帶你用代碼寫出來。
1、新建一個類public class Item extends LinearLayout {
private Context mContext;
public CrashWriteItem(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
init(attrs);
}
private void init(AttributeSet attrs) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TypedArray a = getContext().obtainStyledAttributes(attrs,
R.styleable.view_item);
//生成一個文件布局汗菜,也可以不用這種方式,直接new也行
View layout = inflater.inflate(R.layout.view_item, null);
// 設(shè)置 左邊文字大小 這是我摘自我自己項目里的 ?只是說明下怎么使用attrs.xml中的屬性
int leftTextSize = a.getInt(
R.styleable.view_item_setLeftTextSize, 14);
setLeftTextSize(leftTextSize);
a.recycle();
this.addView(layout);
}
}
2挑社、.在res/values目錄下建立一個attrs.xml的文件,在這個文件中增加對控件的自定義屬性的定義.
關(guān)于format的解釋:
"reference" //引用
"color" //顏色
"boolean" //布爾值
"dimension" //尺寸值
"float" //浮點(diǎn)值
"integer" //整型值
"string" //字符串
"fraction" //百分?jǐn)?shù),比如200%
3陨界、在代碼里引用的時候格式是R.styleable.view_item_setLeftTextSize。
4痛阻、在自己的布局里根據(jù)自己的需求完善好代碼之后 ?就是應(yīng)用了菌瘪。應(yīng)用在xml布局里的方式如下:
在應(yīng)用的xml文件的頭部加上聲明:?xmlns:app="http://schemas.android.com/apk/res-auto"
這里的app這個是可以替換成任何你想起的名字,在下邊引用的時候?qū)?yīng)起來即可阱当。否則查找不到資源俏扩。
<包名.Item
.............
app:setLeftTextSize="14"
/>
結(jié)束語:到此為止自定義就結(jié)束了,對 就這么簡單弊添,趕緊動手試試吧录淡,有什么問題歡迎跟小編交流 ,有不完善的歡迎來噴油坝,也歡迎打賞嫉戚!你們的支持是我的動力。