用组合方式,利用系统控件拼接实现自定义控件

2019-10-02  本文已影响0人  26小瑜儿
用组合方式,利用系统控件拼接实现自定义控件
最终效果:

当点击五个圆点的右半部分时,红点右移,当红点移动到最后一个点的时候,红点下一次将移动到第一个点。点击五个圆点的左半部分的时候红点左移。
最终实现效果图:


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);


上一篇 下一篇

猜你喜欢

热点阅读