通过分析SystemUI,发现实际调用SurfaceControl.java隐藏类实现拷屏, 但需要系统权限
public Bitmap captureScreen() { Display mDisplay; DisplayMetrics mDisplayMetrics; WindowManager mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mDisplay = mWindowManager.getDefaultDisplay(); mDisplayMetrics = new DisplayMetrics(); mDisplay.getRealMetrics(mDisplayMetrics); float[] dims = {mDisplayMetrics.widthPixels, mDisplayMetrics.heightPixels}; return SurfaceControl.screenshot((int) dims[0], (int) dims[1]); }
下载相关系统库jar
本文介绍了一种使用SurfaceControl类进行屏幕截图的方法,并演示了如何通过Java代码获取屏幕尺寸及调用screenshot方法来完成截图。
940





