开发者

android get x-y co-ordinates from a Path

In my app I have an activity where I draw paths in canvas.and also I put all the paths into an ArrayList<Path>.

After drawing that I just send that ArrayList<Path> to another class to draw the same path in different canvas.

So there instead of using directly that Path I want to convert each Path to x,y Co-ordinates and from that I able to draw all path.

How can i do that?

part of my code is below,

private ArrayList<Path> _graphics = new ArrayList<Path>();
public boolean onTouchEvent(MotionEvent event) {
        synchronized (_thread.getSurfaceHolder()) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                System.out.println("i'm in ACTION_DOWN ");
                path = new Path();
                path.moveTo(event.getX(), event.getY());
                path.lineTo(event.getX(), event.getY());

            //_graphics.add(path);


                path.addCircle(event.getX(), event.getY(), 2,
                        Path.Direction.CCW);

            } 
            else if (event.getAction() == MotionEvent开发者_如何学JAVA.ACTION_MOVE) {

                System.out.println("i'm in ACTION_MOVE ");
                path.lineTo(event.getX(), event.getY());
                path.moveTo(event.getX(), event.getY());
                _graphics.add(path);

            } 
            else if (event.getAction() == MotionEvent.ACTION_UP) {

                System.out.println("i'm in ACTION_UP ");
                path.lineTo(event.getX(), event.getY());

            }

            return true;
            }
    }


    public void onDraw(Canvas canvas) {
        canvas.drawColor(Color.WHITE);
        if (onSelect == true) {
            onSelect = false;
            _graphics.clear();
        }
        for (Path path : _graphics) {
            canvas.drawPath(path, mPaint);
            }
        }

_graphics is an ArrayList<Path> .

and another question is I also want to pass this Arraylist<path> through Socket, for that i have to convert this path to byte[]. Is it possible to covert into byte[]?

Thank you


I know this is not exactly what your looking for but this should help. It will display the x and y.

package com.mike.touch;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.TextView;

public class TouchActivity extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("touch screen");
       setContentView(tv);
   }
   @Override
   public boolean onTouchEvent(MotionEvent event){
       TextView tv = new TextView(this);
       tv.setText("x="+event.getX()+"       y="+event.getY());
       setContentView(tv);

       return super.onTouchEvent(event);
   }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜