2011-10-06 27 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代码。 –

相关问题