我正在尝试使用用户Touch事件在Android中绘制一个可调整大小的Circle。
我需要当用户触摸scree时,将绘制圆圈,然后如果他将手指移动到其中心以外,则圆圈将变大,反之亦然,我该怎么做?
另外,他就像重绘圆圈一样,那是因为在ACTION_MOVE中有这句话说:
canvas.drawCircle(...)
但是我如何使用起始圆并使其变大或变小?
我已经尝试了很多东西(比如6个小时),我不知道还有什么可以尝试,这是我现在的代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
cacheCanvas.drawCircle(event.getX(),event.getY(),50,paint);
pX= event.getX();
pY = event.getY();
circleDiam = (event.getX()+event.getY())/2;
break;
case MotionEvent.ACTION_MOVE:
cacheCanvas.drawCircle(event.getX(),event.getY(),(event.getX()+event.getY())/2,paint);
break;
case MotionEvent.ACTION_UP:
break;
}
invalidate();
return true;
}
这是我得到的结果:
http://i.stack.imgur.com/J0y7s.png
非常感谢提前!
答案 0 :(得分:0)
您想使用SurfaceView绘制圆圈然后 听取表面视图上的触摸事件。
http://developer.android.com/reference/android/view/SurfaceView.html
在线使用表面视图有一些很好的例子 如果你谷歌为他们。
如果你只有几种尺寸并且想要对它进行俗气,你可以定义drawable并在用户拖动时交换它们。这不会是优雅或顺利的。