размер автоматически увеличивается, когда я меняю значок в плавающих кнопках

размер автоматически увеличивается, когда я меняю значок в плавающих кнопках
это мой код, когда я нажимаю на любое меню в первый раз, когда размер увеличивается, тогда все хорошо, я хочу, чтобы при нажатии на любую кнопку значок менялся без изменения размера кнопки в андроиде до леденца

    fab = (FloatingActionButton)findViewById(R.id.fab);
        fab1 = (FloatingActionButton)findViewById(R.id.fab1);
        fab2 = (FloatingActionButton)findViewById(R.id.fab2);
        fab_open = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fab_open);
        fab_close = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fab_close);
        rotate_forward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_forward);
        rotate_backward = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_backward);
        fab.setOnClickListener(this);
        fab1.setOnClickListener(this);
        fab2.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id){
            case R.id.fab:

                animateFAB();
                break;
            case R.id.fab1:
                toggle();

                Log.d("Raj", "Fab 1");
                break;
            case R.id.fab2:

                Log.d("Raj", "Fab 2");
                break;
        }
    }

    private void toggle() {

        if(isopen) {
            isopen=false;
            fab1.setImageResource(R.drawable.ic_3d_rotation_black_18dp);
        }else {
            isopen=true;
            fab1.setImageResource(R.drawable.ic_3d_rotation_white_18dp);

        }

    }

    public void animateFAB(){

        if(isFabOpen){

            fab.startAnimation(rotate_backward);
            fab1.startAnimation(fab_close);
            fab2.startAnimation(fab_close);
            fab1.setClickable(false);
            fab2.setClickable(false);
            isFabOpen = false;
            Log.d("Raj", "close");

        } else {

            fab.startAnimation(rotate_forward);
            fab1.startAnimation(fab_open);
            fab2.startAnimation(fab_open);
            fab1.setClickable(true);
            fab2.setClickable(true);
            isFabOpen = true;
            Log.d("Raj", "open");

        }
    }
}

person prem nath    schedule 04.10.2016    source источник


Ответы (1)


Прежде чем делать fab.setImageResource(), сделайте следующее:

fab.setScaleType(ImageView.ScaleType.CENTER_CROP);
person Aman Grover    schedule 04.10.2016