我在画布上工作。我允许这样的绘制路径:
// when ACTION_DOWN start touch according to the x,y values
private void startTouch(float x, float y) {
trazo.moveTo(x, y);
mX = x;
mY = y;
}
// when ACTION_MOVE move touch according to the x,y values
private void moveTouch(float x, float y) {
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);
if (dx >= TOLERANCE || dy >= TOLERANCE) {
trazo.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
mX = x;
mY = y;
}
}
// when ACTION_UP stop touch
private void upTouch() {
trazo.lineTo(mX, mY);
mCircles.add(new Trazo(trazo, colorActual, pincel));
trazo = new Path();
}
我想保存这个" trazo"在本地DB中稍后在画布上重用。 我怎么能保存它?我认为如果保存第一个点(x,y)和第二个点(x,y),它只会在两个点之间画一条线。我需要保存所有路径。 我不想将画布保存为图像,因为我想稍后再使用它并允许修改它。
答案 0 :(得分:1)
你可以使用google Gson将你的trazo对象编组到json Gradle依赖:
compile 'com.google.code.gson:gson:2.8.0'
用法:
Gson gson = new Gson();
String trazoJson = gson.toJson(trazo);
然后,您可以将trazoJson
保留在数据库中,然后您可以轻松地将trazoJson
解放为trazo
。
Gson gson = new Gson();
Path trazo = gson.fromJson(trazoJson, Path.class);
答案 1 :(得分:0)
您可以尝试将路径保存为字符串,就像在svg中一样。 https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
答案 2 :(得分:0)
最后,我保存了一个PointsList,然后迭代这个List来构造Path。