1.自定义一个组合控件 定义一个累 继承
LinearLayout RelativeLayout
2.重写构造方法 两个参数的构造方法 在定义xml布局文件的时候 回去调用这个构造方法
3.在构造方法里面 View.inflate(context,R.layout.ui_setting_view,this)把布局文件
转换成view对象,挂载到自己身上;
4.为了方便起见 希望增加一些自定义的属性;
6.使用自定义的属性
xmlns:xxxxx="http://schemas.android.com/apk/res/com.itheima.mobilesafe
xxxxx 这个可以随便写
res后面是你的应用程序的包名:com.itheima.mobilesafe
7.布局文件
8.系统解析布局文件的自定义view对象的时候 ,会调用两个参数的构造方法
AttributeSet attrs
9. context.obtainStyledAttributes(attrs,R.styleable.setting_View);
让系统解析到的属性集合和我们自己定义的集合建立一个对应关系;
10. title = a.getString(R.styleable.setting_View_title);
11.把获取到的数据设置到界面上;
12.释放资源 a.recycle();
2.重写构造方法 两个参数的构造方法 在定义xml布局文件的时候 回去调用这个构造方法
3.在构造方法里面 View.inflate(context,R.layout.ui_setting_view,this)把布局文件
转换成view对象,挂载到自己身上;
4.为了方便起见 希望增加一些自定义的属性;
5.来到alues目录, 声明一个自定义的属性集
<declare-styleable name="setting_View">
<attr name="title" format="string">
</attr></declare-styleable>
在里面定义一些自定义的属性 attr自动在R文件中创建声明...6.使用自定义的属性
xmlns:xxxxx="http://schemas.android.com/apk/res/com.itheima.mobilesafe
xxxxx 这个可以随便写
res后面是你的应用程序的包名:com.itheima.mobilesafe
7.布局文件
xxxxx:content_off="我是xxxxxx"
xxxxx:title="我是xxxx"8.系统解析布局文件的自定义view对象的时候 ,会调用两个参数的构造方法
AttributeSet attrs
9. context.obtainStyledAttributes(attrs,R.styleable.setting_View);
让系统解析到的属性集合和我们自己定义的集合建立一个对应关系;
10. title = a.getString(R.styleable.setting_View_title);
11.把获取到的数据设置到界面上;
12.释放资源 a.recycle();