Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有透明或黑色背景的情况下拍摄图像?_Java_Android_Background_Screenshot - Fatal编程技术网

Java 如何在没有透明或黑色背景的情况下拍摄图像?

Java 如何在没有透明或黑色背景的情况下拍摄图像?,java,android,background,screenshot,Java,Android,Background,Screenshot,我有一个屏幕捕获方法,它完成了一半的工作,它采取了屏幕截图,但图像与PNG扩展有透明的背景和JPEG它显示黑色背景。如何捕捉背景(桌面壁纸) 我提出了一个类似的问题。我想捕捉展示的全部内容,我认为这也是您所要求的。我发现这段视频可能会有所帮助,但在我看来,这段代码只会捕获当前应用程序的视图,即透明背景上的线条笔划。我还发现这是值得一试的——寻找“keyevent 120”。不幸的是,这两个链接没有带来任何乐趣。有人能再看一次吗,它再次困扰着我。你找到解决办法了吗? public void tak

我有一个屏幕捕获方法,它完成了一半的工作,它采取了屏幕截图,但图像与PNG扩展有透明的背景和JPEG它显示黑色背景。如何捕捉背景(桌面壁纸)


我提出了一个类似的问题。我想捕捉展示的全部内容,我认为这也是您所要求的。我发现这段视频可能会有所帮助,但在我看来,这段代码只会捕获当前应用程序的视图,即透明背景上的线条笔划。我还发现这是值得一试的——寻找“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();
    }
}