你正在尋找檢查event.getAction()
返回MotionEvent
恆定值:
gridView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//Do something when user touch the screen
//(first touch event-before moving or releasing the finger)
break;
case MotionEvent.ACTION_UP:
//Do something when user release the finger touching the screen.
break;
}
return false;
}
});
你也有ACTION_MOVE
當用戶移動他的手指,他從屏幕(適合拖動等發佈之前,其存在的.. 。)
編輯:
與onTouch()
的問題是,它僅適用於整個視圖存在(你的網格),你沒有onItemTouch()
。一種解決方案是當onItemClick()
發生在類定義的變量(例如您單擊的圖片的Bitmap
)中時從項目獲取所需的信息,然後將其用於onTouch()
事件中的任何需要。如果您在任何時候返回true,則表示您已經處理了觸摸事件,並且不會發生onClick()
。另外 - 只需在屏幕上釋放手指(意味着MotionEvent.ACTION_UP
)時點擊呼叫,以便您不會在觸摸事件中使用它。
要解決此問題,您需要使用onItemLongClick()
替代方案,或者使用自定義適配器(在getView()
)中爲網格中的每個項目設置onTouchListener
。
是的,它正在工作,但如何觸發ItemClick方法?我必須實施兩項行動。它類似於網站上的下拉菜單 - 當我在菜單上方有鼠標光標時,它是li:懸停然後它是可見的,當我點擊菜單中的某個選項時,我會轉到已鏈接的網站。 我想使一些類似的android和圖像。 – 2013-04-28 17:05:38
我的回答太長,所以我編輯了我的原始答案... – 2013-04-28 17:30:35