为了账号安全,请及时绑定邮箱和手机立即绑定

菜单在内容区域后面的理解

这样计算就能感觉菜单在内容区域后面?我怎么就反应不过来呢。

正在回答

2 回答

/**

* 滚动发生时,调用本方法 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);

}


0 回复 有任何疑惑可以回复我~
#1

慕勒1082463

这里的方法就是抽屉式滑动的核心~希望帮到你~
2016-05-25 回复 有任何疑惑可以回复我~

所谓的效果都是通过设置餐单或者内容模块的位置从而实现看起来的滑动效果。你只需要知道起点和终点的值即可(这个例子是水平方向的点),途中的动画过程自然就实现了。比如说:拉出菜单的过程:menu的起点为

-menuWidth,终点为0;而content的起点为0,终点为menuWidth。这样解释不知道能不能帮到你。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
QQ5.0侧滑菜单
  • 参与学习       62531    人
  • 解答问题       295    个

本教程将带领大家通过自定义控件实现QQ5.0侧滑菜单

进入课程

菜单在内容区域后面的理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信