菜单在内容区域后面的理解
这样计算就能感觉菜单在内容区域后面?我怎么就反应不过来呢。
这样计算就能感觉菜单在内容区域后面?我怎么就反应不过来呢。
2016-03-20
/**
* 滚动发生时,调用本方法 l即为 getScrollX(); // 隐藏在左边的宽度
*/
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
float scale = l * 1.0f / mMenuWidth;
/**
* scale:1.0~0.0
* 区别1:美容区与1.0~0.85的缩放效果 0.7+0.15*scale.
* 区别2:菜单的偏移量需要修改.
* 区别3:菜单的显示过程中有缩放以及透明度的变化,如下所示: 缩放目标效果0.7~1.0:1.0-scale*0.3.
* 透明度目标效果0.6~1.0:0.6+0.4*(1-scale);
*/
float rightScale = 0.85f + 0.15f * scale;
float leftScale = 1.0f - 0.3f * scale;
float leftAlpha = 1.0f - 0.4f * scale;
// 调用属性动画,设置关于菜单栏的Translation
/**
* 关于ViewHelper.setTranslationX(view, translationX);
* 这里的view 是您要移动哪个View 就是哪个东西你要将他在界面上进行活动呢?
* translationX是指你移动的距离(X为水平,Y为竖直)
*/
ViewHelper.setTranslationX(mMenu, l*0.8f);//第二个参数实现的效果是缓缓拉出的感觉,范围是l~0
ViewHelper.setScaleX(mMenu,leftScale);
ViewHelper.setScaleY(mMenu,leftScale);
ViewHelper.setAlpha(mMenu, leftAlpha);//设置透明度
//内容区域的中心点偏移量,横坐标不变,纵坐标为原来高度的1/2
ViewHelper.setPivotX(mContent, 0);
ViewHelper.setPivotY(mContent, mContent.getHeight() * 1 / 2);
ViewHelper.setScaleX(mContent, rightScale);
ViewHelper.setScaleY(mContent, rightScale);
}
举报