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