FloatingActionButton在单击按钮本身时旋转

时间:2015-08-03 19:01:38

标签: android android-animation floating-action-button

我正在使用FloatingActionButtonOnClick。我想显示PopupMenu并使用漂亮的动画旋转相同的FAB按钮(旋转90度)。

enter image description here

点击后,它应该自动动画:

enter image description here

我可以在PopupMenu方法上显示OnClick,但我无法轮换FAB 本身。事实上,我能够为其周围的所有其他FloatingActionButton设置动画,但我尝试使用FloatingActionButtonOnClick方法。{/ p>

我也尝试过不使用FloatingActionButton,而是一个可以动画(旋转)自身的简单按钮。

public class FloatingButtonPanel extends Fragment {

    //.... Other code... 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        //.... Other code... 
        final FloatingActionButton butA = (FloatingActionButton) view.findViewById(R.id.fb_menu);

        butA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                rotateAnimation(v);
            }
        });

        return view;
    }
    public static void rotateAnimation(View v){
        // Create an animation instance
        final Animation an = new RotateAnimation(0, 90, v.getWidth()/2, v.getHeight()/2);
        an.setDuration(1000);
        an.setFillAfter(true);
        v.clearAnimation();
        v.startAnimation(an);
    }
}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

首先,永远不要尝试按照Google设计在FloatingActionButton(FAB)选项菜单中显示Over flow菜单。

Second Thing Fab只是一个图像视图。所以像其他图像一样,你可以使用Matrix

来旋转它
    Matrix matrix = new Matrix();
    FloatingActionButton fab=new FloatingActionButton(this);
    fab.setScaleType(ImageView.ScaleType.MATRIX);   //required
    matrix.postRotate((float) angle, pivX, pivY);
    fab.setImageMatrix(matrix);

您可以继续Animators隐藏并显示选项菜单。

答案 1 :(得分:0)

非常感谢@Karthik。

通过您在答案中游戏的有用信息,我找到了解决此问题的另一种方法,并使用this post的帮助创建了相同的浮动菜单按钮。

通过使用这个自定义圆圈按钮,我可以使用动画+浮动菜单。

enter image description here