本文介绍在前面的基础上增加更多的效果,主要是通过onScrollChanged()方法进行的。
1.滑出菜单时content缩小
首先定义一个scale,其含义为菜单隐藏的部分占菜单的比例
float scale = l * 1.0f / (mMenuWidth;
然后定义一个content的缩放比例
float rightScale = 0.7f + 0.3f * scale;
因为在没滑动时scale为1, 滑完后为0, 所以在没滑动时rightScale要是1, 滑完后假设为0.7。
mContent.setScaleX(rightScale);
mContent.setScaleY(rightScale);
但是观察实际效果时发现缩放是以右侧的点味中心的,所以要设置中心点为mContent的左侧中心mContent.setPivotX(0);
mContent.setPivotY(mContent.getHeight() / 2);
mContent.setScaleX(rightScale);
mContent.setScaleY(rightScale);
与上面相似
float leftScale = 1.0f - 0.3f * scale;
mMenu.setTranslationX(l * 0.7f);
mMenu.setScaleX(leftScale);
mMenu.setScaleY(leftScale);
通过setTranslateX(l * 0.7f)设置延迟效果
alpha类似