2012-04-13 46 views
2

我正在開發一個android應用程序的項目。我需要讓用戶在預定義的虛線圖像上繪製並顯示與虛線圖像比較的結果圖形的百分比。 例如,虛線「A」,用戶完全畫出虛線「A」上的覆蓋圖,將顯示100%的完成。我們如何才能將畫布上的圖形與Android中的預定義圖像進行比較?

+0

您嘗試過哪些方法,遇到什麼問題? – ScarletAmaranth 2012-04-13 11:33:41

+0

那麼,這裏有什麼問題?我只看到任務的描述。 – vyegorov 2012-04-13 19:29:04

+0

@ScarletAmaranth我首先想到的是想圖像比較,但這並不能滿足覆蓋完成的要求。 – Soo 2012-04-16 00:44:38

回答

1

您可以使用alpha蒙版。我會用你的例子進一步解釋。

一般的想法是插入一個隱藏的掩碼,它基本上是一個帶有預定義區域的圖像,它被視爲正確的軌跡。您可以使用顏色來定義該區域,例如紅色。

所以現在你有一個紅色的圖像A.你覆蓋在你的虛線圖像,你讓它透明(alpha通道)。當用戶繪製時,您所要做的就是檢查觸摸事件是否與隱藏層的紅色像素位於同一位置。如果是,那意味着用戶正在追蹤線路。

如果你不想混淆alpha通道,你可以創造性地以不同的方式去做。如果我在你的位置,我只是創建一個正常的圖像(不需要alpha通道),甚至可以在灰度(這甚至會更有效率)和繪製不同的面具。

例如 我希望用戶跟蹤2個字母:A和B.我打開任何基本的圖像編輯軟件。創建一個灰度圖像,其大小與應該檢測到touchevents的區域大小完全相同。繪製顏色值爲100(灰色)的字母A,然後繪製顏色值爲50(深灰色)的字母B.保存圖像。

在應用程序中,您只需加載該圖像並將其作爲二維數組保存在內存中。然後你可以使用onTouchevent()回調來獲取touchevent位置。因此,例如,如果用戶在位置(120,240)觸摸屏幕,您所要做的就是檢查您先前在[120] [240]位置加載的圖像數組處的值。如果該位置的值爲100,表示用戶正在追蹤字母A,如果該值爲50,則用戶正在追蹤字母B.其他值表示用戶未正確追蹤。

+0

哇...感謝您的想法。我想我應該開始這樣的工作。我可以提及的任何樣品? – Soo 2012-04-16 00:48:03

+0

我現在不是真的有任何具體的樣本,但它不應該很難實現。 – RSai 2012-04-17 00:39:51

+0

因爲我是這個領域的新手,所以對我來說可能會很艱難。 如何創建透明alpha蒙版? 以及如何檢查相同位置上的觸摸事件? – Soo 2012-04-18 00:30:21

相關問題