本人在用UiAutomator做测试的时候,经常会遇到一些控件因为不同的条件显示不同的颜色,在学习了UiAutomator图像处理之后,自己尝试写了一个方法来处理不同颜色控件的区分。分享代码供大家参考。

//根据颜色判断状态

public boolean isBlue(UiObject uiObject) throws UiObjectNotFoundException {

screenShot("test");//截图

String path = "/mnt/sdcard/123/test.png";

Bitmap bitmap = BitmapFactory.decodeFile(path);//新建并实例化bitmap对象

Rect rect = uiObject.getVisibleBounds();

int x = rect.left;

int xx = rect.right;

int y = rect.top;

int yy = rect.bottom;

List blueColor = new ArrayList();

for (int i = x; i < xx; i++) {

for (int k = y;k < yy;k++) {

int color = bitmap.getPixel(i, k);//获取坐标点像素颜色

int red = Color.blue(color);

blueColor.add(red);

}

}

int sum = 0;

for (int i = 0;i 200?true:false;

}

下面是在选择判定值的过程中快速获取某点颜色值的方法:

public int getRedPixel(int x, int y) {

screenShot("test");//截图

String path = "/mnt/sdcard/123/test.png";

Bitmap bitmap = BitmapFactory.decodeFile(path);//新建并实例化bitmap对象

int color = bitmap.getPixel(x, y);//获取坐标点像素颜色

//output(color);//输出颜色值

int red = Color.red(color);

return red;

}

public int getGreenPixel(int x, int y) {

screenShot("test");//截图

String path = "/mnt/sdcard/123/test.png";

Bitmap bitmap = BitmapFactory.decodeFile(path);//新建并实例化bitmap对象

int color = bitmap.getPixel(x, y);//获取坐标点像素颜色

//output(color);//输出颜色值

int green = Color.green(color);

return green;

}

public int getBluePixel(int x, int y) {

screenShot("test");//截图

String path = "/mnt/sdcard/123/test.png";

Bitmap bitmap = BitmapFactory.decodeFile(path);//新建并实例化bitmap对象

int color = bitmap.getPixel(x, y);//获取坐标点像素颜色

//output(color);//输出颜色值

int blue = Color.blue(color);

return blue;

}

public int[] getRGBcolorPixel(int x, int y) {

screenShot("testDemo");

String path = "/mnt/sdcard/123/testDemo.png";

Bitmap bitmap = BitmapFactory.decodeFile(path);

int color = bitmap.getPixel(x, y);

int red = Color.red(color);

int green = Color.green(color);

int blue = Color.blue(color);

int[] rgb = {red, green, blue};

return rgb;

}

技术类文章精选

非技术文章精选

文章来源: www.oschina.net,作者:八音弦,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/u/3973795/blog/3105339

android颜色选择状态,androidUiAutomator如何根据颜色判断控件的状态相关推荐

  1. Android之RemoteViews篇上————通知栏和桌面小控件

    Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...

  2. Bootstrap3 表单控件的状态

    控件的状态 在表单的使用过程中,每个控件可能都会有很多状态,通过表单控件的状态,可以给用户或访问者提供一些有用的反馈. Bootstrap为表单控件提供了 4 种状态,分别是获得焦点状态.禁用状态.只 ...

  3. Bootstrap 表单控件的状态

    在使用过程中,每个控件可能都会有很多状态,通过表单控件的状态,可以给用户或访问者提供一些有用的反馈. Bootstrap提供了 4 种状态,分别是获得焦点状态.无效输入状态.禁用状态.验证状态,并为每 ...

  4. android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题

    50_样式与主题 android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题 2013/5/12 50_样式与主题 ----------------- android样式和主题(st ...

  5. android menu item 显示,Android 如何通过menu id来得到menu item 控件 .

    Android 如何通过menu id来得到menu item 控件 . (2012-07-21 06:43:31) 标签: android 如何 杂谈 Android 如何通过menu id来得到m ...

  6. 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...

    [Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距

  7. c#winform演练 ktv项目 关注MediaPlayer控件的状态

    c#winform演练 ktv项目 关注MediaPlayer控件的状态 获取媒体控件的状态 一般情况下需要int类型的值,用于方便的判断 (int)媒体控件.playState 例子 弹出媒体控件的 ...

  8. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...

    Android-PickerView 注意事项.详请使用方式.更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎 ...

  9. Qt Designer设置背景图片、颜色不影响其它组件小技巧,控件层级设置,组件的继承,styleSheet设置样式。

    话不多说,先看效果图,完美的设置背景. 如果正常设置背景的话其它的组件都会产生变化. 这是因为组件的继承. 最开始的面板就是父类,我们新增加的组件就是子类,默认都是继承的. 继承也有继承的好处. 比如 ...

最新文章

  1. 蚂蚁金服的一次面试你都会吗
  2. vue导航栏跳转路由
  3. 分数化小数c语言题目,习题 2-5 分数化小数 (decimal)(C语言版)
  4. C/C++/动态链接库DLL中函数的调用约定与名称修饰
  5. AI理论知识整理(2)-对称矩阵-特征值与特征向量
  6. Linux学习之033_2
  7. vim的巧用---对比操作
  8. springboot单例模式注入对象_Spring 中经典的 9 种设计模式,打死也要记住啊!
  9. 多重继承java_Java中的多重继承与组合vs继承
  10. Linux下启动mongodb
  11. linux怎么添加更新源,在Deepin 15.7系统中不需要在/etc/apt/sources.list添加更新源
  12. 英语学习笔记2019-9-27
  13. 表格中点击获得行列的值、刷新页面
  14. ELK下Kibana的使用
  15. php留言板开发功能,PHP实现基本留言板功能原理与步骤详解
  16. 使用webots对并联结构进行仿真
  17. itunes更新失败卸载失败(AppleMobileDeviceSupport6464安装时回滚的解决办法)
  18. 计算机软件高级职称有啥用,计算机软考高级职称有什么用
  19. 用python计算圆周率_用python计算圆周率π
  20. 宝哥说币|近期爆火的项目Trister′s Lend究竟有什么发展潜力和前景?

热门文章

  1. PMP之工具与技术---假设条件和制约因素
  2. Nginx虚拟目录alias和root目录
  3. Android Looper Message MessageQueue Handler
  4. 内网穿透工具ngrok的使用
  5. Redis布隆过滤器
  6. java基础---二维数组方面的一些小编程
  7. leetcode 435. Non-overlapping Intervals | 435. 无重叠区间(单调栈)
  8. 爬虫实战:CentOS安装JDK,部署Java程序,利用screen使其保持在前台运行
  9. Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list
  10. 可视化运行Python的神器Jupyter Notebook