How would I set an ImageButton to change only when my finger is touching it

佐手、 提交于 2020-01-02 06:57:13

问题


I want to create an event to change what my image button looks like, but only when it is being pushed down. So far I have been using an onTouch listener, but that just changes it permanently. I can't find anything like an onKyeUpListener() type of thing for the button.

Does anything like this exist?

SOLVED

    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;
        }
    });

回答1:


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

onTouch() ... This is called when the user performs an action qualified as a touch event, including a press, a release, or any movement gesture on the screen (within the bounds of the item).

In other words, onTouch is also called for release events. Look at MotionEvent.getAction().




回答2:


It's in the docs. You can define different images for different states via XML.




回答3:


Instead of doing it manually, why don't you change the drawable of your buttons? In general, drawables can have multiple states, so if you change the drawable for certain states (like focused or selected), the operating system will handle everything for you automatically.



来源:https://stackoverflow.com/questions/4028664/how-would-i-set-an-imagebutton-to-change-only-when-my-finger-is-touching-it

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!