我试图通过代码获取我的游戏截图并通过意图分享.我可以做这些事情,但屏幕截图总是显示为黑色.以下是与共享屏幕截图相关的代码:
View view = MainActivity.getView();
view.setDrawingCacheEnabled(true);
Bitmap screen = Bitmap.createBitmap(view.getDrawingCache(true));
.. save Bitmap
Run Code Online (Sandbox Code Playgroud)
这是在MainActivity中:
view = new GameView(this);
view.setLayoutParams(new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT));
public static SurfaceView getView() {
return view;
}
Run Code Online (Sandbox Code Playgroud)
而观点本身:
public class GameView extends SurfaceView implements SurfaceHolder.Callback {
private static SurfaceHolder surfaceHolder;
...etc
Run Code Online (Sandbox Code Playgroud)
这就是我绘制一切的方式:
Canvas canvas = surfaceHolder.lockCanvas(null);
if (canvas != null) {
Game.draw(canvas);
...
Run Code Online (Sandbox Code Playgroud)
好的,根据一些答案,我构建了这个:
public static void share() {
Bitmap screen = GameView.SavePixels(0, 0, Screen.width, Screen.height);
Calendar c = Calendar.getInstance();
Date d = c.getTime();
String path = …Run Code Online (Sandbox Code Playgroud) 我在扩展表面视图和实现runnable的类中有这个代码我能够使用该类基本上允许您使用不同的颜色等绘制到画布.我正在尝试获得一种方法,允许我在绘制图像后保存图像,这是方法.无论我做什么,我只是得到一个没有任何内容的黑色图像.有任何想法吗?
我启用了缓存绘图
目标从自定义SurfaceView获取位图图像我已经用尽了在这里查看其他帖子的选项,但没有找到任何可行的工作.这里希望最近有一个新的解决方案.非常感谢
public Bitmap getImage() {
Bitmap bitmap = Bitmap.createBitmap(this.getWidth(),
this.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
this.draw(canvas);
return bitmap;
}
Run Code Online (Sandbox Code Playgroud) 我编写了一个绘制线图的代码.此图表是使用Android Plot绘制的.如何将此图表另存为.png图像?