用组合方式,利用系统控件拼接实现自定义控件
最终效果:
当点击五个圆点的右半部分时,红点右移,当红点移动到最后一个点的时候,红点下一次将移动到第一个点。点击五个圆点的左半部分的时候红点左移。
最终实现效果图:
image.png
image.png
image.png
核心:
创建多个系统控件 将系统控件添加到同一个容器中,通过对容器设置约束条件,以及对控件设置动画来实现操作。
步骤一:
1.新建一个Module
image.png
2.将main_activity的xml文件设置为相对布局,设置id
image.png
3.创建一个类管理自定义控件
image.png
4.在容器中添加控件
image.png
5.使该类继承于Linear Layout 重写其构造方法
image.png
6.在代码中使用
image.png
7.在drawable里面新建一个shape.xml文件编辑每个点在不同状态下显示的颜色、尺寸
image.png
image.png
8.在PageContraller中设置状态切换操作和点击事件
image.png
切换操作
image.png
点击事件
image.png
9.在mainActivity中代码实现
image.png
10.给圆点添加动画:
image.png
11.定义接口实现数据回调
image.png
定义监听器对象
image.png
当指示器切换,将事件传递给监听者
image.png
image.png
12.自定义属性
image.png
image.png
获取xml中属性和值
使用对应get方法从TypedArray中取出对应的属性的值
注意:自定义属性的id为 name_attrname
image.png使用:
image.png
易错点:
注意不能在属性设置号好之前先调用
setNumberOfPage(page);
网友评论