阅读更多

uiautomator是android自动化测试工具。

在工作中遇到需要将头像获取出来,涉及到使用uiautomator得到我们要截取图像的坐标,根据坐标将图像截取出并保存为bitmap。需要注意的是 在截图和使用bitmap对截图进行操作时 会出现内存溢出OOM的错误,需要在android的AndroidManifest.xml中添加

android:largeHeap="true" 

也就是说给手机分配更大的堆

  public static void cutImage(Rect rect, String filePath) {        BitmapFactory.Options bfOptions = new BitmapFactory.Options();        bfOptions.inDither = false;        bfOptions.inTempStorage = new byte[12 * 1024];        bfOptions.inJustDecodeBounds = true;        Bitmap m = BitmapFactory.decodeFile(filePath);        m = m.createBitmap(m, rect.left, rect.top, rect.width(), rect.height());//获取头像        ByteArrayOutputStream bos = new ByteArrayOutputStream();        m.compress(Bitmap.CompressFormat.JPEG, 90, bos);//压缩图片        byte[] data = bos.toByteArray();//转换成字节        String img=new String(Base64.encodeToString(data,Base64.DEFAULT));//base64编码        //保存图片到sdcard        saveImage(m, "cutImage");    }    public static void saveImage(Bitmap bitmap, String name) {        FileOutputStream out = null;        try {            out = new FileOutputStream("/storage/emulated/0/Pictures/" + name + ".jpg");            if (out != null) {                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);                out.close();            }        } catch (Exception e) {            e.printStackTrace();        }    }    public static void getImage(UiDevice device,String objectResourceId) {        UiObject uiObject = CommonUtils.findByResourceId(objectResourceId, device);        try {            Rect rect = uiObject.getBounds();            String path = "/storage/emulated/0/Pictures/screenshot.png";            File file = new File(path);            device.takeScreenshot(file);            cutImage(rect, path);        } catch (Exception e) {            e.printStackTrace();        }    }

 

更多相关文章

  1. Android中的两种坐标系
  2. android uiautomator 截取图片
  3. Android(安卓)Drawable Resources系列8:
  4. Android坐标系
  5. androidのview游戏框架
  6. 根据百度地图API得到坐标和地址并在地图上显示
  7. Android:Task '' not found in root project '*****'
  8. Android屏幕截图并保存截取屏幕的图片到指定文件
  9. Android(安卓)教你如何通过 LocationManager 获取得到当前位置坐

随机推荐

  1. 阅读《Android 从入门到精通》(1)——了解
  2. ListView样式实现总结
  3. android 如何获得系统权限 android.uid.s
  4. 四极管:Android操作系统的结构
  5. 界面编程之基本界面组件(5)ToggleButton(状
  6. Android(安卓)应用程序之间数据共享 - Co
  7. Android从零开始搭建MVVM架构(4)——LiveDa
  8. Android手势监听类GestureDetector
  9. scrollview--android
  10. 解决 android 的R文件不能生成 R cannot