2011-10-06 52 views
2

我試圖創建一個活動,一旦有人在屏幕中間點擊(並保持)按鈕圖像,便會更改背景。一旦按鈕被釋放,應用程序將切換回正常的背景。如何感知是否有人點擊了Android中的區域?

到目前爲止,我已經嘗試在「區域」前面放置一個按鈕來按下並將其可見性設置爲隱形。

有沒有更好的方式來做到這一點?有沒有辦法來感知人放開按鈕? (例如,在按下按鈕做一些東西,當釋放按鈕做其他的東西)

感謝

+0

..? –

回答

0

你想要類似NumberPickerButtonNumberPicker

您應該在按鈕上長按(setLongClickable(true))。 然後響應onLongClick事件和onTouchEvent,如果操作已啓動。

你的事件處理程序應該是這個樣子:

public boolean onLongClick(View v) { 
    changeYourBackground(); 
    return true; 
} 

public boolean onTouchEvent(MotionEvent event) { 
    if ((event.getAction() == MotionEvent.ACTION_CANCEL) 
     || (event.getAction() == MotionEvent.ACTION_UP)) { 
    putYourBackgroundBack(); 
    } 
    return super.onTouchEvent(event); 
} 
你想通過保持一些觀點在中間或空白UI執行該操作
+0

關於正確的聲音,但我想他可能只想實現onTouchEvent(MotionEvent事件),並且如果它是MotionEvent.ACTION_DOWN,則執行changeYourBackground()。這將使圖像立即改變,而不是在長時間點擊延遲之後。 –

+0

如果他想讓圖片在觸摸時改變,那麼您必須按照您所描述的方式進行操作。 –

0

你可以做到這一點使用canvas.In的是,你可以拍攝圖像顯示在畫布和捕捉的中間區域上的觸摸事件,圖像覆蓋。當用戶觸摸該區域時,更改畫布的背景顏色。

+0

我認爲他需要觸摸時發生變化,並在未按下時恢復原始狀態。您可以使用onTouch偵聽器來處理ontouch和onrelease兩個事件。應該工作正常,不知道確切的android代碼。 –

相關問題