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
- 是否要打开一个对话框并让用户保存图像?使用存储访问框架
问题是,例如,当您在显示器上单击时,应该保存屏幕的屏幕截图,但这并没有发生,图像根本不在图库或其他地方,而如果您测试对于桌面版,屏幕已成功保存。我正在通过保存工作为 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
- 是否要打开一个对话框并让用户保存图像?使用存储访问框架