android仿ios数字密码解锁界面的实例

  

  

 android仿ios数字密码解锁界面的实例

  

每个Android开发人员都知道,现在Android的解锁最常用的就是九宫格解锁,ios的解锁常用的是数字密码解锁。而我们在开发工程中,很多时候,都需要Android和ios进行结合。有的时候我们就需要把我们的解锁界面弄成像ios一样的数字键盘。

  

这里我就实现了一个仿照ios的数字密码解锁界面。在这里我采用了两种方式来实现,第一种就是使用自定义控件的形式,第二种就是使用我们的布局来实现的。这里我就着重讲一下使用自定义控件形式实现的思路。至于使用布局文件实现的方式,我就不进行具体的讲解了,具体的在后面我会上传源码供大家下载进行研究学习。

  

当然,我的能力有限,可能你们觉得我的方式不好,那么你们就给我提出来,看看具体你们觉得怎么实现才好,我们一起研究学习。

  

好了,废话不多说了,现在就来讲解一下,我所使用自定义控件的实现方法:

  

  

<强> 1。绘制数字

     //绘制第一排1、2、3   画布。drawText (“1”first_x 40 + first_y,油漆);   画布。drawText (“2”first_x * 2 40 + first_y,油漆);   画布。drawText (“3”, first_x * 3, 40 + first_y,油漆);//绘制第2排4、5、6   画布。drawText (“4”first_x 40 + first_y + first_x,油漆);   画布。drawText (“5”first_x * 2 40 + first_y + first_x,油漆);   画布。drawText (“6”, first_x * 3、40 + first_y + first_x,油漆);//绘制第3排7,8,9   画布。drawText (“7”first_x 40 + first_y + first_x * 2,油漆);   画布。drawText (“8”, first_x * 2, 40 + first_y + first_x * 2,油漆);   画布。drawText (“9”, first_x * 3, 40 + first_y + first_x * 2,油漆);//绘制第4排0   画布。drawText (“0”, first_x * 2, 40 + first_y + first_x * 3,油漆);      之前      

<强> 2。绘制好数字后,我们需要在每一个数字外面添加一层圆,绘制圆

     //依次绘制第一排的圆   画布。drawCircle (40 + first_y - 15 first_x + 10日,50岁,油漆);   画布。drawCircle (40 + first_y first_x * 2 + 10——15日,50岁,油漆);   画布。drawCircle (first_x * 3 + 10, 40 + first_y - 15, 50岁,油漆);//依次绘制第2排的圆   画布。drawCircle (40 + first_y + first_x first_x + 10——15日,50岁,油漆);   画布。drawCircle (first_x * 2 + 10, 40 + first_y + first_x - 15, 50岁,油漆);   画布。drawCircle (first_x * 3 + 10, 40 + first_y + first_x - 15, 50岁,油漆);//依次绘制第3排的圆   画布。drawCircle (40 + first_y + first_x first_x + 10 * 2 - 15日,50岁,油漆);   画布。drawCircle (first_x * 2 + 10, 40 + first_y + first_x * 2 - 15日,50岁,油漆);   画布。drawCircle (first_x * 3 + 10, 40 + first_y + first_x * 2 - 15日,50岁,油漆);//绘制最后一个圆   画布。drawCircle (first_x * 2 + 10, 40 + first_y + first_x * 3 - 15, 50岁,油漆);      之前      

<强> 3。点击数字后,我们给一个不同的效果,让用户知道自己点击了该数字,这里我是吧外面的圆的颜色改为了黄色

     //判断是否点击数字   如果(circle_x比;0,,circle_y祝辞0){//点击   如果(type==0){//按下刷新   paint.setColor (Color.YELLOW);//设置画笔颜色   画布。drawCircle (circle_x circle_y 50、油漆);//绘制圆   }else if (type==1){//弹起刷新   paint.setColor (Color.WHITE);//设置画笔颜色   画布。drawCircle (circle_x circle_y 50、油漆);//绘制圆//绘制完成后,重置   circle_x=0;circle_y=0;   }   }      

<>强4。最后就是判断点击的数字

     /*   *判断点击的是哪一个数字圆   */私人空间handleDown(浮动x, y浮动){//判断点击的是那一列的数据   if (x [0] - 50 & lt;=x,,& lt; x=x[0] + 50){//第一列//获取点击处的圆心横坐标   circle_x=x [0];//判断点击的是哪一排   如果(y [0] - 50 & lt;=y,,y[0] + 50祝辞=y){//第1排//获取点击的数字圆的圆心纵坐标   circle_y=y [0];   数量=1;//设置点击的数字   }else if (y [1] - 50 & lt;=y,,y[1] + 50祝辞=y){//第2排//获取点击的数字圆的圆心纵坐标   circle_y=y [1];   数量=4;//设置点击的数字   }else if (y [2] - 50 & lt;=y,,y[2] + 50祝辞=y){//第3排//获取点击的数字圆的圆心纵坐标   circle_y=y [2];   数量=7;//设置点击的数字   }   }else if (x [1] - 50 & lt;=x,,x & lt;=x[1] + 50){//第2列//获取点击处的圆心横坐标   circle_x=x [1];//判断点击的是哪一排   如果(y [0] - 50 & lt;=y,,y[0] + 50祝辞=y){//第1排//获取点击的数字圆的圆心纵坐标   circle_y=y [0];   数=2;//设置点击的数字   }else if (y [1] - 50 & lt;=y,,y[1] + 50祝辞=y){//第2排//获取点击的数字圆的圆心纵坐标   circle_y=y [1];   数量=5;//设置点击的数字   }else if (y [2] - 50 & lt;=y,,y[2] + 50祝辞=y){//第3排//获取点击的数字圆的圆心纵坐标   circle_y=y [2];   数量=8;//设置点击的数字   }else if (y [3] - 50 & lt;=y,,y[3] + 50祝辞=y){//第4排//获取点击的数字圆的圆心纵坐标   circle_y=y [3];   数量=0;//设置点击的数字   }   }else if (x [2] - 50 & lt;=x,,& lt; x=x[2] + 50){//第3列//获取点击处的圆心横坐标   circle_x=x [2];//判断点击的是哪一排   如果(y [0] - 50 & lt;=y,,y[0] + 50祝辞=y){//第1排//获取点击的数字圆的圆心纵坐标   circle_y=y [0];   数量=3;//设置点击的数字   }else if (y [1] - 50 & lt;=y,,y[1] + 50祝辞=y){//第2排//获取点击的数字圆的圆心纵坐标   circle_y=y [1];   数量=6;//设置点击的数字   }else if (y [2] - 50 & lt;=y,,y[2] + 50祝辞=y){//第3排//获取点击的数字圆的圆心纵坐标   circle_y=y [2];   数量=9;//设置点击的数字   }   }   sendAccessEvent (R.string.numeric_keyboard_down);   类型=0;//按下刷新//绘制点击时的背景圆   无效();   }      

android仿ios数字密码解锁界面的实例