自定义控件的步骤:
- 自定义一个View继承ViewGroup等相似效果的View;
- 重写构造方法
可以在构造方法中附加要显示的内容如下:
View.inflate(context, R.layout.ui_setting_view, this);
这里就是让这个填充出来的View
显示到当前我们自定义的这个布局中View
的构造方法共有三个,其中一个参数的构造方法,是通过代码new
对象的时候调用,
两个参数的构造方法是通过在xml
布局文件中声明的构造 -
实现通过
Xml
文件配置属性values
目录下新建attrs.xml
- 内容如下
配置完成后会自动在R
文件中生产对应的R.styleable
内部类
- 代码设置
- 在构造函数中将
Xml
配置与属性值建立映射关系 - 使用
typedArray.getString(R.styleable.SettingView_title)
得到xml
中的属性值,并且设置给相应控件的属性。 - 调用
typedArray.recycle()
; 回收掉资源.
- 在构造函数中将
- 布局使用
Android
的命名空间为xmlns:android=http://schemas.android.com/apk/res/android
定义自己的命名空间时只需要把最后面的android
改为我们应用程序的包名
xmlns:itheima="http://schemas.android.com/apk/res/com.charon.test"
以系统设置页面的选中为例
- 样式
示例代码:settingview.xml
- 在
res-values
下面新建一个attrs.xml
文件
- 自定义一个类继承
ViewGroup
- 使用自定义控件