在Android中捕获按钮发布

是否可以捕获按钮的释放,就像我们使用onClickListener()OnClick()捕获点击一样?

我希望在按下按钮时增加按钮的大小,并在释放按钮时将其移回原始大小。 任何人都可以帮我怎么做?

  • 在Android中按下按钮时触发事件
  • Android - 具有形状drawable和自定义渐变的自定义按钮
  • 如何在Android中为按钮文字加下划线?
  • 屏幕关闭时检查音量按钮的使用情况
  • android - 单击应用程序图标打开导航抽屉?
  • Android:正面,负面和中性按钮之间的区别
  • android设置计时器上按钮的可见性
  • LinearLayout - 垂直不对齐
  • 您应该在按钮上设置OnTouchListener。

     button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { increaseSize(); } else if (event.getAction() == MotionEvent.ACTION_UP) { resetSize(); } } }; 

    您还必须处理MotionEvent.ACTION_CANCEL。 所以代码将是:

     button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { increaseSize(); } else if (event.getAction() == MotionEvent.ACTION_UP) { resetSize(); } } }; 

    改为使用OnTouchListener或OnKeyListener。

    您可以通过覆盖onKeyDownonKeyUp来实现此目的。 这些都是从android.widget.TextViewinheritance的。 请查看android.widget.Button doc (更多信息)。

    除此之外,Eric Nordvik有正确的答案

     event.getAction() == MotionEvent.ACTION_UP 

    从来没有为我执行过。 相反,我确实实施了

      button.setOnClickListener(new OnClickListener() { @Override public boolean onClick(View v) { resetSize(); } }; 

    触摸ACTION_UP。