Java 如何在没有透明或黑色背景的情况下拍摄图像?
我有一个屏幕捕获方法,它完成了一半的工作,它采取了屏幕截图,但图像与PNG扩展有透明的背景和JPEG它显示黑色背景。如何捕捉背景(桌面壁纸)Java 如何在没有透明或黑色背景的情况下拍摄图像?,java,android,background,screenshot,Java,Android,Background,Screenshot,我有一个屏幕捕获方法,它完成了一半的工作,它采取了屏幕截图,但图像与PNG扩展有透明的背景和JPEG它显示黑色背景。如何捕捉背景(桌面壁纸) 我提出了一个类似的问题。我想捕捉展示的全部内容,我认为这也是您所要求的。我发现这段视频可能会有所帮助,但在我看来,这段代码只会捕获当前应用程序的视图,即透明背景上的线条笔划。我还发现这是值得一试的——寻找“keyevent 120”。不幸的是,这两个链接没有带来任何乐趣。有人能再看一次吗,它再次困扰着我。你找到解决办法了吗? public void tak
我提出了一个类似的问题。我想捕捉展示的全部内容,我认为这也是您所要求的。我发现这段视频可能会有所帮助,但在我看来,这段代码只会捕获当前应用程序的视图,即透明背景上的线条笔划。我还发现这是值得一试的——寻找“keyevent 120”。不幸的是,这两个链接没有带来任何乐趣。有人能再看一次吗,它再次困扰着我。你找到解决办法了吗?
public void takeScreenshot() throws IOException {
date = new DateIAinnot();
view = ((Activity) context).getWindow().getDecorView().getRootView();
view.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
root = Environment.getExternalStorageDirectory().toString();
myDir = new File(root + "/Pictures");
myDir.mkdirs();
fname = date.getDate(2) + ".png";
fname = fname.replace(':', '_');
fname = fname.replace(' ', '-');
file = new File(myDir, fname);
if (file.exists()) file.delete();
try {
out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
openScreenshot(file);
} catch (Exception e) {
e.printStackTrace();
}
}