2017-04-06 129 views
0

在我當前的活動中,我有一個用戶通過用手指在屏幕上繪製而創建的Path對象。我想將這個Path對象傳遞給下一個活動,大概是通過一個Intent。如何將路徑對象傳遞給新的活動(Android)

Intent myIntent = new Intent(activity, TrainingActivity.class); 
myIntent.putExtra("image",byteArray); 

/* Pass the Path to the Intent here*/ 

// Start new activity with this new intent 
activity.startActivity(myIntent); 

我已經使用大約()方法來逼近路徑點,像這樣

float[] pArray = path.approximate(0.5); 
myIntent.putExtra("arr",pArray); 

然而機器人給我的錯誤的數組的嘗試:「無法解析法「近似(雙) '「,出於某種原因,我無法讓它工作,所以這種方法似乎是不行的。

+0

是的,'android.graphics.Path'沒有這樣的公開/可見方法 - 它被隱藏@ @ hide'註釋 – pskink

+0

根據文檔(https://developer.android.com/reference/android/graphics/ Path.html#approximate(float)),此方法僅在Android O預覽中可用。 – MatusMak

回答

0

爲防萬一以後有人有這個相同的問題,我提出的解決方案是當有人觸摸屏幕時記錄x和y座標,因爲我正在構建路徑。我把這些座標轉換成一個ArrayList是這樣的:

ArrayList<Float> xCoords = new ArrayList<Float>(); 
ArrayList<Float> yCoords = new ArrayList<Float>(); 

@Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // Get the coordinates of the touch event 
     float eventX = event.getX(); 
     float eventY = event.getY(); 

     switch (event.getAction()) { 
      // When a finger touches down on the screen 
      case MotionEvent.ACTION_DOWN: 
       // Add the coordinates to array lists 
       xCoords.add(eventX); 
       yCoords.add(eventY); 
       // Set a new starting point 
       path.moveTo(eventX, eventY); 
       return true; 
      // When a finger moves around on the screen 
      case MotionEvent.ACTION_MOVE: 
       xCoords.add(eventX); 
       yCoords.add(eventY); 
       // Connect the points 
       path.lineTo(eventX, eventY); 
       break; 
      ... 
      ... 
      ... 

然後通過這些點是組成下一個活動路徑,我只是兩個數組作爲額外添加到意圖和意圖傳遞給新活動

Intent myIntent = new Intent(activity, TrainingActivity.class); 
           myIntent.putExtra("image",byteArray); 

// Add the two arrays with points 
myIntent.putExtra("Xpoints",xCoords); 
myIntent.putExtra("Ypoints",yCoords); 

// Start new activity with this new intent 
activity.startActivity(myIntent); 

然後如果你真的需要一個Path對象,只需創建用這些點的新路徑。

相關問題