Android实现截屏方式整理(总结) | 您所在的位置:网站首页 › 截屏翻译app安卓 › Android实现截屏方式整理(总结) |
本文介绍了Android 实现截屏方式整理,分享给大家。希望对大家有帮助 可能的需求: 截自己的屏截所有的屏带导航栏截屏不带导航栏截屏截屏并编辑选取一部分自动截取某个空间或者布局截取长图在后台去截屏1.只截取自己应用内部界面 1.1 截取除了导航栏之外的屏幕 代码语言:javascript复制View dView = getWindow().getDecorView(); dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(dView.getDrawingCache()); if (bitmap != null) { try { // 获取内置SD卡路径 String sdCardPath = Environment.getExternalStorageDirectory().getPath(); // 图片文件路径 String filePath = sdCardPath + File.separator + "screenshot.png"; File file = new File(filePath); FileOutputStream os = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); os.flush(); os.close(); DebugLog.d("a7888", "存储完成"); } catch (Exception e) { } }1.2 截取某个控件或者区域 两种方案: 跟上面差不多,只不过view不适用根view,而是使用某个某个控件。 代码语言:javascript复制View dView = title; dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(dView.getDrawingCache());手动draw 代码语言:javascript复制View dView = titleTv; Bitmap bitmap = Bitmap.createBitmap(dView.getWidth(), dView.getHeight(), Bitmap.Config.ARGB_8888); //使用Canvas,调用自定义view控件的onDraw方法,绘制图片 Canvas canvas = new Canvas(bitmap); dView.draw(canvas);1.3 截取带导航栏的整个屏幕 这一小节会将一些理论上可以,但是实践会特别复杂,不太推荐使用。可以学习了解。 adb 命令 这里指的不是连接电脑进行adb操控,而是在App内部实现adb命令的操控 在APK中调用“adb shell screencap -pfilepath” 命令 该命令读取系统的framebuffer,需要获得系统权限: (1). 在AndroidManifest.xml文件中添加 代码语言:javascript复制 |
CopyRight 2018-2019 实验室设备网 版权所有 |