您好我正在开发一个Android应用,其中画布在多个用户之间共享,以便他们可以同时在其上绘制弧。我的计划是使用phonegap,以便我可以使用HTML5 canvas元素。但我发现通过这种方式做起来有点困难。是否有其他(简单)方法来构建此应用程序意味着不使用phonegap。请分享一些其他替代方法。
答案 0 :(得分:1)
您需要的是一种架构,您可以在所有抽屉之间共享的对象中存储每个人的笔画。
假设您有这样的对象:
public class DrawStrokes{
private ArrayList<ArrayList<Point>> strokes;
}
然后你可以添加方法来添加笔画(ArrayList<Point>
),并添加接收所有笔画的方法。
绘制笔划时,只需获取所有ArrayLists并绘制它们。
通过添加颜色等,对象可以变得更加复杂。
编辑:有关实施的更多代码。
接收触摸事件:
public boolean onTouchEvent(MotionEvent e) {
synchronized (drawThread.getSurfaceHolder()) {
final int action = e.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
startNewArrayOfDrawingPoints();
break;
}
case MotionEvent.ACTION_MOVE: {
addPositionToYourArray();
break;
}
case MotionEvent.ACTION_UP: {
userStoppedDrawing();
break;
}
case MotionEvent.ACTION_CANCEL: {
userStoppedDrawing();
break;
}
}
return true;
}
}
在列表中绘制所有内容
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
for(int i = 0; i < allStrokes.size(); i++){
for (int j = 0; j < allStrokes.get(i).size(); j++){
canvas.drawCircle(allStrokes.get(i).get(j).x,
allStrokes.get(i).get(j).y,
radie,
paint;
}
}
}