如何在正常状态下实现"buttondown" "reverse click"事件?



我的Android应用需要一个特殊的按钮,其正常状态为MouseDownMouseUp event燃烧时,Click event燃烧。

所以这个按钮实际上是与普通按钮

相反

不需要DoubleClick event。试着在网上搜索;

我是这样实现"ReverseButton"的:

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Button;
public class CustomButton extends Button {
  private CustomButtonListener mListener;
  private boolean mPressedState;
  public CustomButton(Context context) {
      super(context);
  }
  public CustomButton(Context context, AttributeSet attrs) {
      super(context, attrs);
  }
  public CustomButton(Context context, AttributeSet attrs, int defStyleAttr) {
      this(context, attrs, defStyleAttr, 0);
  }
  @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  public CustomButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
      super(context, attrs, defStyleAttr, defStyleRes);
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
      switch (event.getAction()) {
          case MotionEvent.ACTION_DOWN:
              mPressedState = true;
              break;
          case MotionEvent.ACTION_UP:
              if(mPressedState) {
                  mListener.onRelease(event);
              }
              mPressedState = false;
              break;
      }
      return super.onTouchEvent(event);
  }
  public void setOnReleaseListener(CustomButtonListener listener) {
      mListener = listener;
  }
  public interface CustomButtonListener{
      void onRelease(MotionEvent event);
  }
}

最新更新