libGDX:Android无法保存屏幕截图

问题描述

问题是,例如,当您单击显示器上的时,应该保存屏幕的屏幕截图,但这不会发生,图像只是不在图库中或其他地方,而如果您测试桌面版本,屏幕已成功保存。我正在通过保存工作为android绘制图形,但是我不知道如何在android上保存图片

if (Gdx.input.isTouched())
{
    byte[] pixels = ScreenUtils.getFrameBufferPixels(0,Gdx.graphics.getBackBufferWidth(),Gdx.graphics.getBackBufferHeight(),true);
    for (int i = 4; i < pixels.length; i += 4)
    {
        pixels[i - 1] = (byte) 255;
    }

    pixmap pixmap = new pixmap(Gdx.graphics.getBackBufferWidth(),pixmap.Format.RGBA8888);
    BufferUtils.copy(pixels,pixmap.getPixels(),pixels.length);
    pixmapIO.writePNG(Gdx.files.local("mypixmap.png"),pixmap);
    local = Gdx.files.getExternalStoragePath().toString();
    System.out.println(Gdx.files.getLocalStoragePath());
    System.out.println(Gdx.files.getExternalStoragePath());
    pixmap.dispose();
}

解决方法

Gdx.files.local仅用于内部文件,画廊无法访问。

您需要使用Gdx.files.external,但是当前的libGDX版本使用的路径在正常情况下也无法访问。 It is changed for the next version

根据您要实现的目标,还有其他方法可以使用平台特定的代码。

  • 是否要定期保存屏幕截图?使用1.9.12起的应用专用存储
  • 您要与其他应用共享屏幕截图吗?使用本地存储和androidx.core.content.FileProvider
  • 您要打开一个对话框,用户可以保存图像吗?使用存储访问框架