Увеличение высоты кнопки при нажатии на нее?

введите сюда описание изображениявведите сюда описание изображения

У меня есть 6 кнопок. При нажатии на любую из них, мне нужно чтобы высота увеличивалась этой кнопки. Как это сделать? Button.setHeight(); сделал. Но не работает при нажатии. Еще я пробовал увеличить высоту формы в drawable.Но все равно не получалось. В xml высота и ширина кнопки по 45dp. Я поставил на wrap_content, подумал что наверное нельзя зафиксировать размер, но все равно не выходит. Скажите пожалуйста как это сделать? Заранее спасибо

ConstraintLayout.LayoutParams linnear_lay = new ConstraintLayout.LayoutParams(45, 65);
                     linnear_lay.topMargin = 150;

                     btnWeekDay1.setLayoutParams(linnear_lay);

Ответы (1 шт):

Автор решения: Andrew

Можно сделать таким образом:

button.setOnTouchListener(new View.OnTouchListener() {

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

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

            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;
                button.setLayoutParams(layoutParams);
            }
            if(event.getAction() == MotionEvent.ACTION_UP){
                layoutParams.width = width;
                layoutParams.height = height;
                button.setLayoutParams(layoutParams);
            }

            return false;
        }
    });

Вот есть подобные вопросы 1 и 2.

→ Ссылка