600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > android 6.0截屏的实现 android截屏实现

android 6.0截屏的实现 android截屏实现

时间:2021-11-12 20:38:10

相关推荐

android 6.0截屏的实现 android截屏实现

一、截取DecorView,但不能截取视频图片;

private Bitmap takeScreenShot(Activity activity) {

View view = activity.getWindow().getDecorView();

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bitmap = view.getDrawingCache();

Rect frame = new Rect();

view.getWindowVisibleDisplayFrame(frame);

int statusBarHeight = frame.top;

int width = activity.getWindowManager().getDefaultDisplay().getWidth();

int height = activity.getWindowManager().getDefaultDisplay()

.getHeight();

Bitmap b = Bitmap.createBitmap(bitmap, 0, statusBarHeight, width,

height - statusBarHeight);

view.destroyDrawingCache();

return b;

}

二、该命令读取系统的framebuffer,需要获得系统权限,否则只会生成0b的图:

(1). 在AndroidManifest.xml文件中添加

<

uses-permission

android:name

=

"android.permission.READ_FRAME_BUFFER"

/>

(2). 修改APK为系统权限,将APK放到源码中编译, 修改Android.mk

LOCAL_CERTIFICATE := platform

String cmd = "screencap -p /sdcard/screenshot.png";

Runtime runtime = Runtime.getRuntime();

try {

runtime.exec(cmd);

} catch (IOException e) {

e.printStackTrace();

} 可在控制台直接使用 adb shell screencap -p /sdcard/screenshot.png

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。