2017-03-14 8 views
0

私はキャンバスに取り組んでいます。キャンバスに再利用するためのパスを保存する

// 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)と2番目のポイント(x、y)を保存すると、2つのポイント間に線を引くだけと思います。私はすべての道を救う必要があります。 私は後で再利用し、変更を許可したいので、キャンバスをイメージとして保存したくありません。

+0

各パスを追跡し、各パスのjsonを作成して、すべてをsqliteデータベースに1行として保存します。 –

+0

私はgsonでそれをやろうとします。これがうまくいけば、私はあなたと一緒に試してみます – garciam202

答えて

0

最後にポイントのArrayListを保存してから、このリストを繰り返してパスを構築します。

1

Google Gsonを使用してトラゾオブジェクトをjsonにマーシャリングすることができます。
Gradleの依存関係:

compile 'com.google.code.gson:gson:2.8.0' 

使用法:

Gson gson = new Gson(); 
String trazoJson = gson.toJson(trazo); 

その後、データベースにあなたtrazoJsonを持続することができますし、あなたにtrazoからtrazoJson簡単にアンマーシャリングすることができます。

+0

私はこれを試し、それが動作するかどうかを伝えます。ありがとう – garciam202

+0

これは私にとっては役に立たない。 Jsonはパスをうまく変換しません – garciam202

関連する問題