2016-03-17 38 views
0

我正嘗試在用戶觸摸事件中繪製可調整大小的Circle。當用戶移動觸摸屏時在android中調整圈子

我需要當用戶觸摸屏幕時,圓圈將被繪製,然後如果他移動中心的手指外圈,圓圈會變大,反之亦然,我該怎麼做?

而且,他就像是重新劃定的圈子,那是因爲在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

您想使用SurfaceView繪製圓形,然後使用 監聽表面視圖上的觸摸事件。

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

有使用網上提供 表面看法的一些很好的例子,如果你谷歌爲他們。

如果您只有幾個尺寸,並且想要對其進行流暢的操作,您可以定義drawable並在用戶拖動時將其交換。這不會是優雅或平穩。

+0

用戶可以選擇幾種形狀,如直線,圓形,矩形和文本,如果需要,可以將它們組合起來,我希望他可以根據自己的需要調整任何形狀 – Cath