2013-08-19 167 views
0

可以說我在Java代碼中使用黑色的關鍵jpg圖像作爲我的佈局。有沒有一種簡單的方法來獲取區域的圖像,所以我可以使用region.Contains()爲我的onTouchListener?如何從圖像中獲取區域?

我找過他們,沒有任何。我問這是因爲我製作了一個鋼琴應用程序,並希望獲得用於黑/白鍵的圖像區域。

回答

2

不是使用圖像,而是嘗試自己渲染鋼琴鍵,並檢查輸入是否在您渲染的黑色鍵區域,而不是使用圖像。

如果您確實想使用圖像,請手工定義圖像中的黑色區域。

在圖像中檢測區域是一個難題,你可能不想爲了這樣一個簡單的目的而進行檢測。如果你有很多圖像,或者經常這樣做,這可能是值得的頭痛,但你可能不會......不必擔心。

+0

我同意。除此之外,通過在代碼中渲染鋼琴,您還必須定義要檢查的區域。最簡單的實驗案例是創建一個自定義視圖。讓它在視圖中心繪製一個矩形,並在觸摸事件中改變顏色。爲了檢測正確的鍵,只需匹配觸摸事件的x座標就足夠了,並且可以查看它落在哪個鋼琴的「水平段」。這是一個用鋼琴鍵寬度除x的問題。 – tiguchi

+0

對不起,英語是我的第一語言,但讓我明白這一點。你的意思是可以說把按鈕放在佈局上,然後把黑/白鍵的區域自己放在它們的上面。然後在這些區域使用onTouchListener?我想這是大多數鋼琴應用程序如何做的,但他們都沒有透露他們的源代碼,所以不能確定哈哈。如果我完成了這個病態的話可能會泄露給大家看的源代碼!謝謝你的提示 ! – JehovahIsGod

+0

是的,你可以把按鈕放在最上面,或者你可以根據用戶點擊你的'PianoView'跟着我創建你的「按鈕」?這就是@NobuGames所建議的,我相信。 –