To increase a button's size when it is pressed

2019-05-24 08:46发布

How can I make my button's size to increase slightly when it is pressed and decrease again when it is released? This is for highlighting the pressed button, by using size in addition to a different color.

Regards, Kiki

3条回答
ら.Afraid
2楼-- · 2019-05-24 09:06

button.setOnTouchListener(new View.OnTouchListener() {

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

            RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)v.getLayoutParams();

            //Code to convert height and width in dp.
            int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 35, getResources().getDisplayMetrics());
            int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 140, getResources().getDisplayMetrics());

            if(event.getAction() == MotionEvent.ACTION_DOWN){
                layoutParams.width = width + 5;
                layoutParams.height = height + 5;
                SearchButton.setLayoutParams(layoutParams);
            }
            if(event.getAction() == MotionEvent.ACTION_UP){
                layoutParams.width = width;
                layoutParams.height = height;
                SearchButton.setLayoutParams(layoutParams);
            }

            return false;
        }
    });
查看更多
迷人小祖宗
3楼-- · 2019-05-24 09:16

In your activity

Private Button myButton;

//...

protected void onCreate(Bundle savedInstanceState) {

//...

myButton = (Button) findViewById(R.id.my_button);
    _button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        myButton.setWidth(50);
        myButton.setHeight(50);
        }
      });
    }
查看更多
贼婆χ
4楼-- · 2019-05-24 09:18

Make your Button a field, and modify its size in the OnTouchListener associated with it. Using an OnTouchListener you can listen for different MotionEvents, such as ACTION_DOWN and ACTION_UP.

查看更多
登录 后发表回答