2011-06-14 58 views
1

在過去,我寫了一個應用程序,會畫兩條線。我所做的是創建兩個向量,一個用於指針ID 0,另一個用於指針ID 1(因此其他任何被忽略)。我會緩衝在我的onTouch方法中繪製的點,然後在我的表面繪製方法中爲兩條單獨的線繪製線條。我將代碼的這些部分進行了同步,以便UI線程和圖形線程不會彼此嘔吐。這工作得很好。多面觸摸繪圖與表面視圖

現在我想要做的是相同的,但觸摸的次數不受限制。由於我擁有無限的觸摸以及任意隨機數的指針ID,因此我無法簡單地爲多個觸摸創建矢量,因爲我不知道有多少觸摸。

什麼是緩衝多個觸摸,使用各種指針ID,以便我可以繪製它們的好方法?

也許有一個多點觸摸繪圖應用程序,我可以用作參考?

謝謝,

+0

我也不希望搜索這些向量來查找特定指針ID的確切位置。 – 2011-06-14 16:46:47

回答

2

一種解決方案可以是使用與整數作爲鍵(在pointerIds)和作爲對象路徑的地圖。在觸摸方面,在TOUCH_DOWN上啓動路徑,將其添加到地圖,然後在移動中每次訪問它。在最後,你可以從映射中移除它,並將它「提交」到一個通用的路徑列表中,與初始pointerId無關(或者可以將原始pointerId與路徑一起存儲)。

因此,基本上,在繪製時,使用pointerId將地圖中的路徑保存爲索引,一旦完成,就將它們保存在全局列表中。