9宫格解锁

2018-08-03  本文已影响0人  贝克街的猫大哥呀

  这个自定义VIEW是非常满足面向对象的这个逻辑,每个解锁的点都是一个对象。包括了圆心坐标,以及当前圆的状态,如普通状态,选中状态,错误状态。 ondraw里是根据这三种状态 来绘制不同状态的圆,以及连线。

先继承自VIEW,在内部类里定义好这个类,其中index表示的是这个点的下标。用来做最后的密码确认。

  在onMeasure测量完毕后,初始化各点,就是将坐标算出来,给各个点赋值,就是个数学题而以。

下面讲讲onTouch方法里处理的事情,无非就是在down和move的时候,去检查当前TOUCH区域是否在圆里,以及UP事件的处理嘛:

打标的第二个方法就是画那条跟着手指走的线,具体如下:

当发现当前TOUCH点为圆时,就将当前的point加入到集合,并且立马重绘。就是改变圆的颜色!

这里就是将当前的touch坐标全局化,至少哪里画线,当然是在ondraw里面啊!

一个一个来看看:

这里就是画一个内圆一个外圆,并且根据不同的状态,来画不同颜色

接着是画线,画线其实挺容易,主要是圆和圆之间的箭头怎么画呢:

画线挺容易的,主要是画箭头,这里是自己写了个方法,其实说白了,就是画三个线,拼成了一个三角形--

关键就是这几句话。算出箭头的几个点的坐标,然后连起来,都是数学问题。

上一篇下一篇

猜你喜欢

热点阅读