[問題] 請問使用觸控畫圓
我是使用Canvas繪圖,在onDraw內畫圓
觸控畫下第一個圓OK,但畫第二個圓的時候
第一個圓會消失,只剩下第二次觸控畫下的圓
我的程式碼 Class中的onDraw內
protected void onDraw(Canvas canvas) {
r = java.lang.Math.sqrt((mx-tx)*(mx-tx)+(my-ty)*(my-ty));//計算半徑
fr=(float)r;//轉成float
canvas.drawCircle(tx, ty, java.lang.Math.abs(fr), paint);畫圓
}
而關於touch事件
寫了兩個function
private void touch_start(float touchX,float touchY){
tx=touchX;
ty=touchY;
mx=touchX;//初始化
my=touchY;//初始化
}
private void touch_move(float moveX,float moveY) {
mx=moveX;
my=moveY;
}
和onTouchEvent事件
public boolean onTouchEvent (MotionEvent event){
float currentX=event.getX();
float currentY=event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
touch_start(currentX, currentY);
invalidate();
break;
case MotionEvent.ACTION_MOVE:
touch_move(currentX, currentY);
invalidate();
break;
}
return true;
}
不知道是不是因為onDraw每次畫都會更新畫面呢?
但是我在onDraw內drawpath()來畫隨機線條 就不會有上一筆消失的問題...
不知道是什麼原因,煩請版上大大幫忙...
補充:
使用canvas.drawpath(path,pen)的話
在touch_down時有使用path.moveTo()
touch_move時有使用path.quadTo()
似乎是因為這樣,才可以使Drawpath()所畫出來的線條不會消失
而drawcircle()的圓心和半徑好像都沒有這種方式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.205.97.25
※ 編輯: AZHI 來自: 123.205.97.25 (10/21 19:28)
推
10/21 21:41, , 1F
10/21 21:41, 1F
→
10/21 21:42, , 2F
10/21 21:42, 2F
→
10/21 21:42, , 3F
10/21 21:42, 3F
→
10/21 21:43, , 4F
10/21 21:43, 4F
→
10/21 21:48, , 5F
10/21 21:48, 5F
→
10/21 21:48, , 6F
10/21 21:48, 6F
→
10/21 21:49, , 7F
10/21 21:49, 7F
→
10/21 21:58, , 8F
10/21 21:58, 8F
→
10/21 22:26, , 9F
10/21 22:26, 9F