在捕获textview图像时,阴影被破坏.
我使用setShadowLayer以编程方式添加了文本阴影.
tv.setShadowLayer(20, 0, 0, Color.BLACK);
Run Code Online (Sandbox Code Playgroud)
当我用图像捕捉图像时
tv.buildDrawingCache(true);
tv.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
tv.setDrawingCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)
并使用获取位图
bitmap = tv.getDrawingCache();
Run Code Online (Sandbox Code Playgroud)
屏幕上的原始图像
捕获的图像
还尝试捕获父布局但结果相同.
TeamViewer允许远程控制其他Android设备.它很慢,但它完成了这项工作.
它需要安装2个应用程序.一个控制(链接在这里),一个控制(链接在这里).
我不确定它是否有其他选择,但我想知道是否可以这样做.
我找不到teamViewer使用的任何特殊权限,并且它在没有root的情况下完成所有操作.
这很奇怪,因为我已经阅读了很多地方,为了让应用程序截取屏幕截图,它必须具有root权限(或者连接到计算机并使用ADB截取屏幕截图).
怎么会这样?TeamViewer有哪些功能可以实现?
如何在没有任何特殊许可的情况下拍摄截图?这个应用程序甚至不是系统应用程序...
是不是可以做任何没有root的TeamViewer做的事情?
TeamViewer有替代品吗?
假设我有root,如何有效地远程控制或流式传输屏幕截图?
我开发了截屏的应用程序.但它只需要app的快照.我想从应用程序中取出快照.我已经研究过答案,但我还没有找到答案.这是我的代码.
View view = getWindow().getDecorView().getRootView();
view.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
saveImageToAppFolder(bitmap);
Run Code Online (Sandbox Code Playgroud)
saveImagetoAppFolder是将图像保存到app文件夹的功能.那不是问题.反正有屏幕快照吗?
更新
参考资料:perfecto mobile和设备随处可见
我正在开发基于云的移动测试解决方案,该解决方案应该支持iOS和Android.它需要从浏览器处理连接的移动设备.
我了解到移动设备有一个代理程序类型的程序(需要设备根植)安装
有没有其他方法可以实现这一点,可能没有root/jail打破设备?
这个问题可能看起来很广泛,但我一直在努力想要朝着正确的方向前进.
对于iOS,我从这个SOF问题中获取线索.
任何指针都很受欢迎.
更新1:
这个问题接近我正在寻找的问题.
更新2: 我找到了Android设备的Android屏幕库,并在几台设备上进行了测试.它不要求设备被植根,但需要在每次设备重启时从命令行重新启动服务,并且无法在Lollipop上运行它..
更新3: 虽然Android屏幕库有助于在没有生根的情况下捕获屏幕,但它对注入事件没有帮助.甚至屏幕捕获似乎有些错误 - 有时用黑色补丁捕获并且在棒棒糖上不起作用!
更新4:
参考:perfecto mobile和设备随处可见
它们似乎ADB用于处理许多事情,如应用程序安装/卸载,通过发送事件adb shell input tap x y.任何人都可以解释一下吗?
更新5: 我也碰到过这种SO帖子由阿德里安·泰勒,一名前工程师的RealVNC.这是最详细的解释.虽然Android Lollipop有MediaProjection API,但它似乎将屏幕截图存储为sdcard上的MP4文件.此外,根据谷歌仪表板 - 2015年8月更新Lollipop仍然是Android安装基数的15%左右,所以必须考虑Kitkat的任何解决方案.
更新6: 我找到了libvncserver,想知道它是否能完成这项工作.我将测试并发布结果.
谢谢
我想捕获手机上运行的Android应用程序的屏幕截图.
我尝试使用ScreenShot UX应用程序.这也可以在无根电话上完成.知道如何从后台运行的服务获取Android应用程序的屏幕截图吗?
我希望我的服务定期捕获屏幕并发送到服务器.