FloatingActionButton 在点击按钮本身时旋转
FloatingActionButton rotate on clicking button itself
我正在使用 FloatingActionButton
和 OnClick
。我想显示 PopupMenu
并用漂亮的动画旋转同一个 FAB 按钮(旋转 90 度)。
点击时,它应该会自动动画:
我可以在其 OnClick
方法上显示 PopupMenu
,但我无法旋转 FAB 本身 。事实上,我能够为它周围的所有其他 FloatingActionButton
制作动画,但我尝试了没有一种 FloatingActionButton
可以为自己制作动画 OnClick
方法。
我也试过不使用 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);
}
}
有人能帮忙吗?
首先,永远不要按照 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 以隐藏和显示选项菜单。
非常感谢@Karthik。
根据您在回答中提供的有用信息,我找到了另一种解决此问题的方法,并使用 this post 的帮助创建了相同的浮动菜单按钮。
通过使用这个自定义圆圈按钮,我可以使用动画 + 浮动菜单。
我正在使用 FloatingActionButton
和 OnClick
。我想显示 PopupMenu
并用漂亮的动画旋转同一个 FAB 按钮(旋转 90 度)。
点击时,它应该会自动动画:
我可以在其 OnClick
方法上显示 PopupMenu
,但我无法旋转 FAB 本身 。事实上,我能够为它周围的所有其他 FloatingActionButton
制作动画,但我尝试了没有一种 FloatingActionButton
可以为自己制作动画 OnClick
方法。
我也试过不使用 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);
}
}
有人能帮忙吗?
首先,永远不要按照 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 以隐藏和显示选项菜单。
非常感谢@Karthik。
根据您在回答中提供的有用信息,我找到了另一种解决此问题的方法,并使用 this post 的帮助创建了相同的浮动菜单按钮。
通过使用这个自定义圆圈按钮,我可以使用动画 + 浮动菜单。