Android unit test中通过颜色比对替代肉眼检查
2015-07-02 17:38
465 查看
对于Android UI类的单元测试,以前写的有些代码就是sleep 10秒,然后肉眼检查下。这样子在自动化测试中没有用。
今天修改了下代码,其实肉眼检查也就是检查pixel的颜色,所以可以直接获取view的某个点的颜色,然后跟期望值比较就行了。
这是获取view中某个pixel颜色的代码:
如果只需要颜色相近,而不完全相同,可以计算两个颜色的四元素(RGBA)之间的距离,可以用这个方法:
今天修改了下代码,其实肉眼检查也就是检查pixel的颜色,所以可以直接获取view的某个点的颜色,然后跟期望值比较就行了。
这是获取view中某个pixel颜色的代码:
public static int getColor(View view, int x, int y) { int w = view.getWidth(); int h = view.getHeight(); if (x >= 0 && x < w && y >= 0 && y < h) { Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmp); view.draw(canvas); return bmp.getPixel(x, y); } return 0; }
如果只需要颜色相近,而不完全相同,可以计算两个颜色的四元素(RGBA)之间的距离,可以用这个方法:
public static int getColorDistance(int color1, int color2) { return (int) Math.sqrt( (Math.pow(Color.red(color1) - Color.red(color2), 2) + Math.pow(Color.green(color1) - Color.green(color2), 2) + Math.pow(Color.blue(color1) - Color.blue(color2), 2) + Math.pow(Color.alpha(color1) - Color.alpha(color2), 2))); }
相关文章推荐
- Android5.0编译问题:No rule to make target 'external/chromium_org/third_party/angle/.git/index',
- Android特效 五种Toast详解
- Android 编程下 Touch 事件的分发和响应机制
- Android 编程下 Touch 事件的分发和响应机制 分类: Android 2015-07-02 17:35 12人阅读 评论(0) 收藏
- Android TabHost布局
- HashMap类的理解
- Android 与 IIS服务器身份验证
- android Toast显示消息的几种方法
- Android 使用自定义字体
- Android:报" Incorrect line ending: found carriage return (\r) without corresponding newline (\n) "解决
- Android之spinner控件的用法
- Android 百分比布局库(percent-support-lib) 解析与扩展
- Android 科大讯飞语音交互API简单使用
- Android NDK开发Crash错误定位
- Android SDK开发包国内下载地址
- Android圆环控件
- android SharedPreferences 存储对象
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android涉及到的设计模式
- 切换到android studio遇到的svn问题