在我的应用程序中,我有一个活动,我在画布中绘制路径。我还将所有路径放入ArrayList<Path>.
在绘制之后,我只是将ArrayList<Path>
发送到另一个类,以在不同的画布中绘制相同的路径。
所以不是直接使用我希望将每个路径转换为 x,y坐标的路径,而是从中我能够绘制所有路径。
我该怎么做?
我的部分代码如下,
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.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
是ArrayList<Path>
。
和另一个问题我也希望将此Arraylist<path>
传递给Socket
,因为我必须将此路径转换为byte[]
。 是否可以转换为byte []?
谢谢
答案 0 :(得分:1)
我知道这不是你想要的,但这应该有所帮助。它将显示x和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);
}
}