当用户移动触摸屏时,在android中调整圆形大小

时间:2016-03-17 16:30:48

标签: android

我正在尝试使用用户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

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

您想使用SurfaceView绘制圆圈然后 听取表面视图上的触摸事件。

http://developer.android.com/reference/android/view/SurfaceView.html

在线使用表面视图有一些很好的例子 如果你谷歌为他们。

如果你只有几种尺寸并且想要对它进行俗气,你可以定义drawable并在用户拖动时交换它们。这不会是优雅或顺利的。