作者:韩茹
公司:程序咖(北京)科技有限公司
鸿蒙巴士专栏作家
一、项目介绍当系统提供的组件无法满足设计需求时,您可以创建自定义组件,根据设计需求自定义组件的属性及响应事件,并绘制组件。自定义组件是在组件预留的两个自定义图层中实现绘制,通过addDrawTask方法添加绘制任务,最终与组件的其它图层合成在一起呈现在界面中。
实现思路:
创建自定义组件的类,并继承Component或其子类,添加构造方法。实现Component.DrawTask接口,在onDraw方法中进行绘制。根据自定义组件需要完成的功能,去选择实现相应的接口。例如可实现Component.EstimateSizeListener响应测量事件、Component.TouchEventListener响应触摸事件、Component.ClickedListener响应点击事件、Component.LongClickedListener响应长按事件、Component.DoubleClickedListener响应双击事件等。本教程实现圆形抽奖转盘功能,要实现如下接口: a) 需要实现获取屏幕宽高度、中心点坐标,所以实现Component.EstimateSizeListener接口,重写onEstimateSize方法。 b) 需要实现点击中心圆盘区域位置开始抽奖功能,所以实现Component.TouchEventListener,重写onTouchEvent方法。注意:使用自定义组件实现Component.EstimateSizeListener接口需要HarmonyOS SDK版本在2.1.0.13或以上。
二、项目展示自定义圆形抽奖转盘示例工程的代码工程结构描述如下:
附带源码
花粉社群VIP加油站
猜你喜欢