Кнопка захвата релиза в Android - PullRequest
       5

Кнопка захвата релиза в Android

27 голосов
/ 24 сентября 2010

Можно ли зафиксировать отпускание кнопки так же, как мы фиксируем щелчок, используя onClickListener() и OnClick()?

Я хочу увеличить размер кнопки при нажатии и переместить ее обратнооригинальный размер, когда щелчок отпущен.Кто-нибудь может мне помочь, как это сделать?

Ответы [ 5 ]

49 голосов
/ 24 сентября 2010

Вы должны установить 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();
        }
    }
};
3 голосов
/ 25 октября 2013

Вы должны также обработать 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();
        }
    }
};
2 голосов
/ 24 сентября 2010

используйте взамен OnTouchListener или OnKeyListener.

1 голос
/ 24 сентября 2010

Вы можете сделать это, переопределив onKeyDown и onKeyUp. Оба они унаследованы от android.widget.TextView. Пожалуйста, смотрите android.widget.Button документ для (немного) больше информации

0 голосов
/ 05 февраля 2013

Эрик Нордвик имеет правильный ответ, за исключением того, что

event.getAction() == MotionEvent.ACTION_UP

никогда не казнили за меня. Вместо этого я реализовал

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

для касания ACTION_UP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...