本文介紹在前面的基礎上增加更多的效果,主要是通過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類似