导航抽屉滑动时旋转视图

时间:2015-07-04 07:43:38

标签: android

这就是我试图在抽屉幻灯片上旋转ImageView(菜单按钮)的方法。我正在使用自定义ImageView设置一个角度来从抽屉幻灯片旋转偏移并使视图无效。我的问题是它是否是一个更好的解决方案?如果没有,请为我的问题建议一些更好的替代解决方案。

MenuButton.java

public class MenuButton extends ImageView {

    public int angle = 0;
    public MenuButton(Context context) {
        super(context);
    }

    public MenuButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.save();
        canvas.rotate(angle, getWidth() / 2, getHeight() / 2);
        super.onDraw(canvas);
        canvas.restore();
    }

}

并在DrawerListener实现中将ImageButton对象的角度设置为

 @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {

            float angle = slideOffset * 360;
            menuButton.angle = (int) angle;
            menuButton.invalidate();

    }

    @Override
    public void onDrawerOpened(View drawerView) {

    }

    @Override
    public void onDrawerClosed(View drawerView) {

    }

    @Override
    public void onDrawerStateChanged(int newState) {

    }

1 个答案:

答案 0 :(得分:1)

从API级别11开始,您可以使用setRotation(angle)

顺便说一句,当抽屉滑动时你应该animate rotation