我正在使用我在网上找到的CanvasView API,我想知道如何保存屏幕上的图片,以便我在活动时更改。
这是处理画布的代码,非常简单。但是,每当我往返页面时,图纸就会消失。有谁知道如何保存图纸?
public CanvasView canvas;
public void initializeCanvas(View v, int color, float strokeWidth) {
canvas = (CanvasView)v.findViewById(R.id.canvas);
canvas.setMode(CanvasView.Mode.DRAW);
canvas.setDrawer(CanvasView.Drawer.PEN);
canvas.setPaintStyle(Paint.Style.STROKE);
canvas.setOpacity(200);
canvas.setPaintStrokeColor(color);
canvas.setPaintStrokeWidth(strokeWidth);
}
答案 0 :(得分:0)
我无法在那里找到任何东西来完整保存所有内容。但是我再也不擅长阅读API了。
您希望在暂停之前保存活动实例(转移到另一个活动)。 Android默认做了一些,但不是太多。您需要指定详细信息(就像为深度复制创建更好的复制构造函数一样)。
This article on Recreating Activity可以为您提供基本想法。现在,您可以选择保存savedInstanceState
中的内容和保存方式以及稍后恢复:
以下所有内容均未经过测试。尝试第一个,如果它不起作用,发疯。让未来的读者知道什么有用。
public Bitmap getBitmap()
方法。从那里获取位图图像。以某种方式暂时保存位图。还原时,使用public void drawBitmap(Bitmap bitmap)
方法还原绘图。你将失去绘图历史和东西和东西的设置。为了保存它们,您可以尝试下面的内容。 public int getBaseColor()
)保存Canvas类的一些select属性,稍后使用公共修饰符(例如public void setBaseColor(int color)
)motherOfGetters(...)
和motherOfSetters(.....)
方法(我创建了名称)。它们将为您提供最重要的数据类型的值,以便使用setter保存并稍后将其还原。savedInstanceState
中。 This SO post on saving objects可能对此有所帮助。