2017-02-18 300 views
1

我編寫了繪圖應用程序,我想要檢索繪圖的所有X Y.也就是說,每次觸摸屏幕時,座標x和y我都將它們放在一個二維表格中,我做了一個敬酒以瞭解座標何時發生變化,並且我發現它們在movetouch中發生了變化方法,所以我在方法中聲明瞭一個表格,並且我仍然敬酒以查看數組中的第10行,敬酒改變了協調,所以我明白,實際上,只要x和y發生變化,值就會被破壞,或者我種植座標X Y繪製Android

public boolean onTouchEvent(MotionEvent event) { 
    float x = event.getX(); 
    float y = event.getY(); 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 

        startTouch(x, y); 
        invalidate(); 
        break; 

      case MotionEvent.ACTION_UP: 

        upTouch(); 
        invalidate(); 
        break; 

      case MotionEvent.ACTION_MOVE: 

        moveTouche(x, y); 
        invalidate(); 
        break; 

     } 
     return true; 
    } 

方法moveTouch

public void moveTouche (float x,float y) { 
    if ((canDraw)&& drawing) { 
    float dx = Math.abs(x - mX); 
    float dy = Math.abs(y - mY); 
    if(dx >= Tolerance || dy >= Tolerance){ 
     path.quadTo(mX,mY,(x+mX)/2,(y+mY)/2); 
     mX = x ; 
     mY = y; 
     double[][] point = new double [99][2]; 
     for (int i = 0; i < 99; i++) { 

      point[i][0]=x; 
      point[i][1]=y; 


     } 
     Toast.makeText(getContext(),"y = "+point[10][1]+" ",Toast.LENGTH_LONG).show(); 

    }} 
} 

enter image description here

+0

它以什麼方式不起作用? –

+0

@AndyTurner它給我只有一分 – CamlX

+0

你想要在用戶觸摸的屏幕上畫東西嗎? –

回答

2

您可以根據需要從任何路徑讀取儘可能多的點。示例如何從路徑中間讀取座標:

PathMeasure pm = new PathMeasure(myPath, false); 
//coordinates will be here 
float aCoordinates[] = {0f, 0f}; 

//get coordinates of the middle point 
pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null); 

您可以從路徑開始傳遞任何距離以獲取點座標。

+0

謝謝:)另一個問題,如果繪圖是一條直線,我已經繪製(黑色)或您向我展示瞭如何繪製的曲線,我恢復如何將座標與座標進行比較紅色的繪畫,所以觸發動畫 – CamlX

+0

很高興我可以堅持與你並幫助你:)接受並upvote這個答案,如果我的回答幫助你。 –

+0

比較兩條曲線好吧,讓我看看我能爲你的下一個問題做些什麼:) –

相關問題