最近在做APP的自动化测试,采用的是Appium方案。在测试过程中遇到了九宫格滑动解锁的问题,通过查阅相关资料,我做了一个通用的方法来处理九宫格在一个view中显示的情况。

这种情况我们只能通过定位每一个点的相对坐标来滑动,这里先获取整个九宫格所在view的位置,获取该view左上角的坐标,接下来我们需要得到两个点之间横向和纵向的距离,就能方便的计算出每个点的坐标了。

这里承接上一个版本的思路,提供了一个简化的方法:

/**

* 通过数字来标记滑动解锁

* @param by

* @param unlockKey

* @throws IOException

*/

protected static void patternLock(By by, String unlockKey) throws IOException {

WebElement element = findElement(by);

Dimension dimension = element.getSize();

// 获取手势密码控件坐标

Point point = element.getLocation();

HashMap lockMap = new HashMap<>();

// 对手势密码控件进行四等分

int h = dimension.width / 4;

// 获取手势密码控件y坐标

int y = point.y;

for (int i = 1; i <= 9; i++) {

if (i < 4) {

lockMap.put(String.valueOf(i), PointOption.point(h * i, y + h));

}

if (i > 3 && i < 7) {

lockMap.put(String.valueOf(i), PointOption.point(h * (i - 3), y + 2 * h));

}

if (i > 6) {

lockMap.put(String.valueOf(i), PointOption.point(h * (i - 6), y + 3 * h));

}

}

TouchAction action = new TouchAction(driver);

action.press(lockMap.get(String.valueOf(unlockKey.charAt(0)))).waitAction();

for (int i = 1; i

action.moveTo(lockMap.get(String.valueOf(unlockKey.charAt(i))));

}

action.release().perform();

}

这里,我将9个点,分别用1、2、3、4、5、6、7、8、9,这9个数字来代替,通过传递一个设置手势锁或者解锁的控件地址,这9个数字的组合来设置(或解锁)手势密码。

然后将发方法放到需要调用的地方就能够很方便的执行啦!

9宫格解锁 android_9个点的所有解锁图_Android九宫格手势锁设定和解锁相关推荐

  1. C语言 9宫格 和为15,如何将1~9填入九宫格,使其横竖斜都等于15?

    我已然感觉三四年级是混不下去了,准备回二年级混去了,有木有表哥在读初一的求罩啊... 492 357 816 有人说,在射雕英雄传里面这个题目困扰了瑛姑20多年,后来被黄蓉分分钟就解决了.<射雕 ...

  2. 在iOS上增加手势锁屏、解锁功能

    在一些涉及个人隐私的场景下,尤其是当移动设备包含太多私密信息时,为用户的安全考虑是有必要的. 桌面版的QQ在很多年前就考虑到用户离开电脑后隐私泄露的危险,提供了"离开电脑自动锁定" ...

  3. 【Android组件开发】自定义的多宫格布局

    FlexGridLayout 自定义的多宫格布局 目的: 之前有个需求需要用到仿IOS相册展示图片的布局方式,将图片以不同大小布局在一起,不像其他相册应用都是使用对称列表来展示图片,没有给人惊喜乃至于 ...

  4. 聚划算霸占淘宝“六宫格”

    4月9日,手机淘宝App更名为淘宝App,去掉"手机"前缀表明淘宝移动转型进程已经结束,截止到2018年年底,淘宝移动月度活跃用户比一年前增加1.2亿,达到近7亿.4月16日,淘宝 ...

  5. [源码]Android安卓应用手势锁图案解锁的实现

    交互细节 用户首先使用账号/密码进行登录. 登录成功后,判断是否是第一次登录使用,如果是第一次则显示创建手势密码的界面,要求用户创建手势锁. 创建的过程中要求用户连接至少四个点,并且绘制两次以确认绘制 ...

  6. Android 图案解锁 9宫格密码解锁

    序言  第一次写Android技术博客,不知道该如何下手. 背景  现在人们越来越重视自己的隐私,对于一些涉及用户隐私的应用,用户可能会希望在应用启动时必须先输入密码.传统的数字式密码记忆繁琐.容易破 ...

  7. 1、迪文屏基于T5L_C51开发手势6宫格解锁

    演示视频 1.概述 基于迪文屏DMG32240C028-03WTC屏的滑动手势6宫格解锁功能,该功能运用了触摸屏状态读取和坐标读取的功能(系统变量接口0x0016),绘图功能,需要配合变量图标显示等基 ...

  8. 9宫格解锁 android_android开发图案解锁学习记录一(九宫格的绘制)

    图案解锁的原理: 九宫格解锁故名思议就是要有九个宫格:然后宫格间进行连线. 首先我们要先绘制九个点(宫格),确定位置,然后绘制不同的图案. 图案分为不同的状态:正常的状态,按下时的状态和错误的状态 当 ...

  9. PHP直播平台源码Android自定义View:9宫格图形手势解锁

    9宫格图形解锁的操作就是在9个点上进行的,所以我们先定义一个点类,该类主要用于存储点的信息:坐标,状态,位置. public class Point {//正常状态public static int ...

最新文章

  1. ModuleNotFoundError: No module named 'distutils.core'
  2. C/C++ OpenCV图像的尺寸变化
  3. 运算均值方差_Python数据分析之NumPy(运算篇)
  4. mybatis oracle 大写,解决mybatis用Map返回的字段全变大写的问题
  5. php使用异步redis,PHP Swoole异步Redis客户端实现方法示例
  6. Linux OS 曝新漏洞 攻击者可在多数发行版获root 权限
  7. Win7虚拟机上安装Xcode 4
  8. git本地项目怎么上传到仓库
  9. (10)Spring框架----AOP面向切面编程的实现原理
  10. 四种常见演讲结构对比
  11. css timeline,一个非常漂亮的时间轴样式timeLine
  12. unity添加android res资源,Unity3d常用两种加载资源方案:Resources.Load和AssetBundle
  13. 销售的几种层次-销售笔记
  14. react 返回一个页面_react-navigation goBack返回指定页面
  15. P、NP、NPC概念总结
  16. java疯狂讲义输入输出视频_疯狂JAVA讲义---第十五章:输入输出(上)流的处理和文件...
  17. 用plt.scatter画散点图
  18. MacM1下使用opencv
  19. LinkIn基于Dynamo设计的系统:伏地魔(voldemort)设计中文文档
  20. 记一次app爬虫sign破解

热门文章

  1. FreeRTOS笔记篇:第四章 -- 队列管理
  2. ajax请求服务器端数据
  3. 网络工程——HCNA网络技术的简单配置
  4. visio移动变得很卡的解决办法
  5. 二叉排序树和平衡二叉树
  6. 关于VMware虚拟机设置NAT后还不能上网解决办法
  7. Python爬虫学习笔记 (2) [初级] 初识 requests + bs4 + re
  8. DSO Framer _ WinForm 使用
  9. php hook类,基于 CodeIgniter 构建 JWT RESTfull API Server
  10. Chrome油猴(Tampermonkey)脚本使用及常用脚本分享