Как бы я изменил ImageButton, только когда мой палец касается его? - PullRequest
3 голосов
/ 27 октября 2010

Я хочу создать событие, чтобы изменить то, как выглядит моя кнопка с изображением, но только когда она нажата. До сих пор я использовал слушатель onTouch, но это просто меняет его навсегда. Я не могу найти ничего похожего на onKyeUpListener () для кнопки.

Существует ли что-нибудь подобное?

решаемые

    final ImageButton button = (ImageButton) findViewById(R.id.ImageButton01);

    button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if(event.getAction() == (MotionEvent.ACTION_UP)){
                //Do whatever you want after press
            }
            else{
                //Do whatever you want during press
            }
            return true;
        }
    });

Ответы [ 3 ]

5 голосов
/ 27 октября 2010

Это в документах .Вы можете определить разные изображения для разных состояний через XML.

3 голосов
/ 27 октября 2010

Вместо того, чтобы делать это вручную, почему бы вам не изменить рисунок кнопок?Как правило, элементы рисования могут иметь несколько состояний, поэтому, если вы изменяете чертеж для определенных состояний (например, выделенных или выбранных), операционная система будет автоматически обрабатывать все для вас.

2 голосов
/ 27 октября 2010

С http://developer.android.com/guide/topics/ui/ui-events.html:

onTouch () ... Вызывается, когда пользователь выполняет действие, квалифицированное как событие касания, включая нажатие, отпускание или любой жест движения на экране (в пределах элемента).

Другими словами, onTouch также вызывается для событий релиза. Посмотрите на MotionEvent.getAction().

...