libgdx:android不保存屏幕截图

cbwuti44  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(429)

问题是,当你点击显示器时,屏幕截图应该被保存,但这并没有发生,图像根本不在画廊或其他地方,而如果你测试桌面版本,屏幕被成功保存。我正在为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();
}
huus2vyu

huus2vyu1#

Gdx.files.local 仅用于您的内部文件,画廊无法访问。
你需要使用 Gdx.files.external ,但是当前的libgdx版本在这里使用的路径在正常情况下也是不可访问的。为下一个版本而更改。
根据您想要实现的目标,还有其他方法可以使用特定于平台的代码。
是否定期保存屏幕截图?使用1.9.12中的应用程序特定存储
是否要将截图共享到其他应用程序?使用本地存储和 androidx.core.content.FileProvider 是否打开一个对话框,用户可以保存图像?使用存储访问框架

相关问题