Android开发:我要PixelCopyrequest截图当前系统界面怎么写? 注意截图的是系统界面不是我app里某个view! 我app会在后台运行不显示在前台!会通过广播触发截图截当前屏幕! 你刚才给的代码不对!PixelCopy的request第一个参数是SurfaceView或Surface或Window! 你给的代码传个Display干嘛别再出错了
抱歉给出的代码有误,请参考以下代码来使用PixelCopy.request来截取当前系统界面的屏幕截图:
// 在广播接收器中获取截图
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取屏幕的宽高
DisplayMetrics metrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getRealMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
// 创建一个Bitmap对象来存储截图
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// 创建一个Surface对象
Surface surface = new Surface(bitmap);
// 使用PixelCopy.request来截取系统界面
PixelCopy.request(windowManager.getDefaultDisplay(), bitmap, (copyResult) -> {
if (copyResult == PixelCopy.SUCCESS) {
// 截图成功,可以在这里进行保存或其他操作
} else {
// 截图失败
}
// 释放资源
surface.release();
}, new Handler());
}
}
请确保在AndroidManifest.xml文件中注册广播接收器,并在合适的地方触发广播来截取系统界面的屏幕截图
原文地址: http://www.cveoy.top/t/topic/iUyf 著作权归作者所有。请勿转载和采集!