Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >android UiAutomator如何根据颜色判断控件的状态

android UiAutomator如何根据颜色判断控件的状态

作者头像
FunTester
发布于 2019-09-17 07:30:36
发布于 2019-09-17 07:30:36
2.1K00
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //根据颜色判断状态
    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<Integer> blueColor = new ArrayList<Integer>();
        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<blueColor.size();i++) {
            sum += blueColor.get(i);
        }
//        output(sum/blueColor.size());
        return sum/blueColor.size() > 200?true:false;
    }

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    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;
    }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;
    }

技术类文章精选

  1. java一行代码打印心形
  2. Linux性能监控软件netdata中文汉化版
  3. 接口测试代码覆盖率(jacoco)方案分享
  4. 性能测试框架
  5. 如何在Linux命令行界面愉快进行性能测试
  6. 图解HTTP脑图
  7. 如何测试概率型业务接口
  8. httpclient处理多用户同时在线
  9. 将swagger文档自动变成测试代码
  10. 五行代码构建静态博客
  11. httpclient如何处理302重定向
  12. 基于java的直线型接口测试框架初探
  13. Tcloud 云测平台--集大成者

非技术文章精选

  1. 为什么选择软件测试作为职业道路?
  2. 成为杰出Java开发人员的10个步骤
  3. 写给所有人的编程思维
  4. 自动化测试的障碍
  5. 自动化测试的问题所在
  6. 测试之《代码不朽》脑图
  7. 成为优秀自动化测试工程师的7个步骤
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
android UiAutomator基本api的二次封装
本人在使用UiAutomator做测试的时候,封装了很多方法,由于之前的文章并没有分享这些封装方法,导致阅读不畅。本来打算再把图像识别和辅助类写完在分享,鉴于已经离职,UI这块很长时间不太会更新代码了,就把所有的封装方法都分享出来了。里面有些过时的,暂时无用的大家可以忽略。
FunTester
2019/08/27
9040
Android 性能优化——之图片的优化
 在Android性能优化中,我们会发现占内存最大的和对性能影响最大的往往是图片资源,其次是控件资源。相对来说,其他的资源的影响会小一点。这里我就先对图片资源的优化进行一下讲解,如果有什么说的不对的,希望大神指正一下。
用户3030674
2018/09/14
8490
android UiAutomator获取视频播放进度的方法
本人在使用android UiAutomator做测试的时候,有时候需要统计视频播进度,然后去断言上传的进度数据正确与否。具体的思路就是根据进度条的颜色区分,我选的红色,然后去计算各个点的数值,然后计算进度的百分比。
FunTester
2019/10/08
7950
android UiAutomator获取视频播放进度的方法
1-MI-Android多媒体之Bitmap
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com
张风捷特烈
2018/09/04
6310
1-MI-Android多媒体之Bitmap
Android粒子篇之Bitmap像素级操作
零、前言 1.粒子效果的核心有三个点:收集粒子、更改粒子、显示粒子 2.Bitmap的可以获取像素,从而得到每个像素的颜色值 3.可以通过粒子拼合一张图片,并对粒子操作完成很多意想不到的效果 4.本项目源码见文尾捷文规范第一条,文件为BitmapSplitView.java ---- 一、初识 1.什么是Bitmap像素级的操作: 相信大家都知道一张jpg或png放大后会是一个个小格子,称为一个像素(px),而且一个小格子是一种颜色 也就是一张jpg或png图片就是很多颜色的合集,而这些合集
张风捷特烈
2018/12/14
1.8K0
Tip | 数据类型占位 & 降采样 & 像素读取 & Bitmap & Color源码
下面修改通道的时候使用的是位运算, 其实对比Color源码我们知道这跟调用Color的API是一样的:
凌川江雪
2020/04/24
4130
Tip | 数据类型占位 & 降采样 & 像素读取 & Bitmap & Color源码
Palette状态栏颜色提取,写的不错就分享了
Palette 说Palette之前先说下前面提到的Pager。ViewPager是什么大家应该都是知道的了,一般ViewPager、xxxTabStrip、Fragment三个好基友是一起出现的。这里的xxxTabStrip是使用Github上的PagerSlidingTabStrip。当我们的Pager切换时伴随着Fragment的变化,而Fragment里的内容一般是不同的,所以每个Fragment里的一般视觉效果也是不同的,所以我们可以用Palette来去提取Fragment中的主色调,那Fra
xiangzhihong
2018/02/01
9210
Palette状态栏颜色提取,写的不错就分享了
Android中图片压缩分析(下)
QQ音乐技术团队
2017/11/13
5.6K0
Android中图片压缩分析(下)
1-MI-Android多媒体之Bitmap
零、前言 [1].Bitmap是关于图象的类,也就是位图 [2].生成Bitmap对象的方式 [3].BitmapFactory.Options [4].模糊处理 [5].给一个Bitmap添加倒影 [6].将一个View转换成Bitmap [7].保存bitmap ---- 一、生成Bitmap对象的方式 1.从文件获取(运行时权限自己处理) //通过文件绝对路径加载图片 Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/DCIM
张风捷特烈
2018/09/29
5720
1-MI-Android多媒体之Bitmap
android 加载图片oom若干方案小结
本文根据网上提供的一些技术方案加上自己实际开发中遇到的情况小结。 众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视手机而定)。一般我们可以通过获取当前线程的可运行内存来判断,比如系统分给当前运行内存只有16M,而你的图片就有16M,这肯定会oom的。 相关知识介绍 1.颜色模型 常见的颜色模型有RGB、YUV、CMYK等,在大多数图像API中采用的都是RGB模型,Android也是如此;另外,在Android中还有包含透明度Alpha
xiangzhihong
2018/02/05
7790
自定View练习第一节
1.线 线 Paint mPaint = new Paint(); /** 起始X 起始Y 结束X 结束Y **/ float[] pts={20
项勇
2019/12/13
5400
Android处理图像数据全记录
Android中处理图像是一件很常见的事情,这里记录备忘一些亲身使用过的处理图片数据的方法。
技术小黑屋
2018/09/04
6130
Android自定义系列——5.Canvas图片文字绘制
1.绘制图片 绘制有两种方法,drawPicture(矢量图) 和 drawBitmap(位图) (1)drawPicture 使用Picture前请关闭硬件加速,以免引起不必要的问题! 在AndroidMenifest文件中application节点下添上 android:hardwareAccelerated=”false”以关闭整个应用的硬件加速。
老马的编程之旅
2022/06/22
7570
Android自定义系列——5.Canvas图片文字绘制
Android 实现 图片 转 字符画 效果
Android开发中对图片的操作,显示一般都是通过Bitmap进行的,我们可以通过图片路径获取Bitmap对象:
音视频开发进阶
2020/07/06
1.3K0
Android 实现 图片 转 字符画 效果
图像简单处理
public class ImageDistinguish { public string imgName { get; set;} private Bitmap bitmap { get; set; } /// <summary> /// 构造 /// </summary> /// <param name="img">包含二维码的发票</param> public ImageDistin
FreeTimeWorker
2020/08/31
2.4K0
Android基于图像语义分割实现人物背景更换
本教程是通过PaddlePaddle的PaddleSeg实现的,该开源库的地址为:http://github.com/PaddlPaddle/PaddleSeg ,使用开源库提供的预训练模型实现人物的图像语义分割,最终部署到Android应用上。关于如何在Android应用上使用PaddlePaddle模型,可以参考笔者的这篇文章《基于Paddle Lite在Android手机上实现图像分类》。
夜雨飘零
2021/12/07
1.1K0
Android基于图像语义分割实现人物背景更换
android:绘图 (android.graphics包)
android:绘图 View:组件,理解为画布 Drawable:所有可见对象的描述,理解为:素材类 Bitmap:图片类 Canvas:画笔 Paint:画笔样式与颜色、特效的集合
用户9227784
2021/12/08
6550
Android字符串相机
很早就看到过这种场景,用字符来展示图片甚至播放视频,可以说是黑客炫(zhuang)技(b)神器。当然有了一定的技术之后,就明白其实实现挺简单。
音视频开发进阶
2019/08/09
8650
Bitmap图片压缩,大图加载防止OOM
](https://developer.android.com/topic/performance/graphics/load-bitmap) 这两篇文章中已经做了很明确指出了如何高效的加载大图。这篇文章只是对其中的内容进行总结和扩展(比如图片内存计算、图片压缩等)。
静默加载
2020/05/27
2.9K0
相关推荐
android UiAutomator基本api的二次封装
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档