libGDX: Android 不保存截图

libGDX: Android doesn't save screenshot

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

if (Gdx.input.isTouched())
{
    byte[] pixels = ScreenUtils.getFrameBufferPixels(0, 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(), Gdx.graphics.getBackBufferHeight(), Pixmap.Format.RGBA8888);
    BufferUtils.copy(pixels, 0, 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
  • 使用 app-specific 存储
  • 要将屏幕截图分享到其他应用吗?使用本地存储和 androidx.core.content.FileProvider
  • 是否要打开一个对话框并让用户保存图像?使用存储访问框架