九宫格滑动解锁,目前发现有两种一种是每个可点的方格都是一个imageview,九宫格则对应有9个imageview,此类解锁已有前人研究解决了,可以参照tobecrazy的博客

今天我要说的是另一种,九宫格显示在一个view中,类似下图所示:

对于此类滑动解锁,只能使用坐标点来滑动了,要使用坐标点九必须得到1~9这几个点在屏幕上的相对位置,要得到相对位置首先要得到元素view的起始坐标(就是左上角的x和y坐标点),然后再获取到元素的宽和高,由此可以得到1到9的这9个坐标点的x和y坐标,再利用touchaction类的方法进行封装即可,具体实现如下:

 /*** 针对应用的九宫格滑动解锁,每个滑动点么有独立的元素,只能通过相对的坐标点进行滑动* @param driver* @param element*/public void unlockApp(AppiumDriver driver,WebElement element) throws Exception{TouchAction ta=new TouchAction(driver);//元素的起始x和y坐标int x=element.getLocation().getX();int y=element.getLocation().getY();//元素的宽和高int width=element.getSize().getWidth();int height=element.getSize().getHeight();//九宫格图案,对应的1-9个数字的位置int num1x=x+width/4;int num1y=y+height/4;int num4x=num1x;int num4y=y+height/2;int num7x=num1x;int num7y=y+height*3/4;int num2x=x+width/2;int num2y=y+height/4;int num5x=num2x;int num5y=y+height/2;int num8x=num2x;int num8y=y+height*3/4;int num3x=x+width*3/4;int num3y=y+height/4;int num6x=num3x;int num6y=y+height/2;int num9x=num3x;int num9y=y+height*3/4;//moveTo(x,y)滑动时需要提供相对于press坐标点的相对位置,按住一个点后,如果向左或向右滑动那么x坐标为元素宽度的1/4,y坐标为0,相对坐标值为正数时向右滑动,为负数时向左滑动//上下滑动时,x相对坐标为0,y的相对坐标为高度的height/4,相对坐标值为正数时向下滑动,为负数时向上滑动/*Z字形解锁图案*/ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(-width/4, height/4).moveTo(-width/4, height/4).moveTo(width/4, 0).moveTo(width/4, 0).release().perform();/*7字形解锁图案*/ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(0, height/4).moveTo(0, height/4).release().perform();}

滑动解锁效果图:

  

Appium九宫格滑动解锁研究相关推荐

  1. 自定义控件九宫格滑动解锁

    1. 前言 最近想给自己做的的app添加一个滑动解锁的功能,用的是乐视的手机,就模仿它的效果实现. 视频演示一下效果 GitHub 2. LockPoint实体 每个点是一个实体(LockPoint) ...

  2. python自动化滑动解锁_python九宫格滑动解锁

    实现思路: 1.获取九宫格patterview的起始坐标x.y 2.获取九宫格patterview的宽度(width).高度(height) 3.九宫格的九个格子大约平均把patterview的长.宽 ...

  3. 手机九宫格滑动解锁方法种数(389112种)

    有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣. #include <iostream> #include <algorithm> #include & ...

  4. appium 九宫格解锁招商银行手机客户端app

    之前研究了一段时间的appium for native app 相应的总结如下:                                            appium测试环境搭建 :ht ...

  5. 自定义view实战(11):滑动解锁九宫格控件

    前言 上一篇文章用贝塞尔曲线画了一个看起来不错的小红点功能,技术上没什么难度,主要就是数学上的计算.这篇文章也差不多,模仿了一个常用的滑动解锁的九宫格控件. 需求 用过安卓的都知道,用过苹果的也知道, ...

  6. android自定义滑块解锁,使用Android自定义控件实现滑动解锁九宫格

    本文概述: 滑动解锁九宫格的分析: 1.需要自定义控件: 2.需要重写事件onTouchEvent(); 3.需要给九个点设置序号和坐标,这里用Map类就行: 4.需要判断是否到滑到过九点之一,并存储 ...

  7. Android自定义九宫格手势解锁组件

    项目来源 别的不说,先看一下效果图: 九宫格手势图案解锁功能在很多应用中都在使用,本文介绍的组件来自于开源项目PatternLocker的翻写,原工程是使用Kotlin开发的,由于我们项目是使用jav ...

  8. 使用Python+uiautomator2实现手机锁屏解锁(期望输入的锁屏密码,基于滑动解锁)

    业务需求:需要测试手机滑动解锁失败时事件的次数及等待的时间,本来想利用Python+Appium实现,但是Appium运行时自动给我解锁了.... 部分解释摘抄自:https://testerhome ...

  9. java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁

    Android实现九宫格图案解锁,自带将图案转化成数字密码的功能,代码如下: LockPatternView.java package com.jackie.lockpattern; import a ...

最新文章

  1. SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
  2. linux环境上c++ boost安装boost_1_67_0.tar
  3. aspen软件对电脑的要求_BIM软件对电脑配置的要求——Fuzor软件对电脑配置的要求...
  4. 40 | 案例篇:网络请求延迟变大了,我该怎么办?
  5. HTML字体小于12谷歌不兼容,Chrome谷歌浏览器下不支持css字体小于12px的解决办法【原创】...
  6. java 中的doit(n)_CoreJava测试题(含答案).docx
  7. 万年5W充电头再见!2019新iPhone或将标配18W快充头
  8. linux启动日志服务命令,linux命令:syslog日志服务-系统缩减之增加日志服务功能...
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse...
  10. 全DIY主题+小工具 正版Win7桌面新体验windows7旗舰版主
  11. JAVA——斐波那契数列(递归)
  12. 你知道数字图像处理的经典Lenna图背后的故事吗
  13. 安卓投屏大师_【投屏】全平台全设备无线投屏工具幕享
  14. 一个Layered Window从支持多屏到高DPI开始,遭遇的性能雪崩及其优化历程
  15. 「整理了一些让人惊艳的古文情话」
  16. 转不撞南墙不回头——树规总结
  17. lisp读点坐标绘多义线_多段线点导出和导入点坐标成多段线(AutoLISP源码)——好用的AutoCAD点坐标导入导出工具...
  18. Android 开源OS
  19. 电脑使用android手机摄像头,电脑怎么使用安卓手机摄像头 电脑使用手机摄像头的方法-电脑教程...
  20. 计蒜客 T1817 分解质因数(数论)

热门文章

  1. java 使用fastjson map转对象
  2. 问题 H: Hopscotch
  3. 2020茶艺师(初级)考试及茶艺师(初级)模拟考试系统
  4. iVMS-4200 Vs区别_5G科普篇五 |5G网络和4G网络的区别,你真的都了解吗?
  5. 西游记主要人物事件思维导图概括
  6. doxygen教程-5-编写注释
  7. 【转帖】Ventoy支持ISO的U盘直接启动
  8. 扎心分享[土豪专用] 某宝卖1300元的最新微信朋友圈广告植入系统,无限制多用户版朋友圈文章内广告植入
  9. 浅谈游戏中的2D/3D换装
  10. Git基础(1)Git入门