继承HorizontalScrollView的QQ5.0侧滑菜单(三)

来源:互联网 发布:sql修改字段数据类型 编辑:程序博客网 时间:2024/06/04 20:17

之前已经大概完成了对menu和content布局的滑动,对于QQ的效果,还有区别。
这里写图片描述

通过
属性动画:TraslationX , getScrollX完成。
getScrollX就是屏幕没有显示出来那部分。

protected void onScrollChanged(int l, int t, int oldl, int oldt)    {        super.onScrollChanged(l, t, oldl, oldt);        Log.i("scroll", "" + l);        float scale = l * 1.0f / mMenuWidth;        float rightscale = 0.7f + 0.3f * scale;        float leftscale = 1.0f - 0.3f * scale;        float leftalpha = 0.6f + 0.4f * (1 - scale);        // 调用属性动画,设置TranslationX        //l乘以0.7f是将mMenu先隐藏一部分,滑动的时候在一并拉出        ViewHelper.setTranslationX(mMenu, l * 0.7f);        ..........    }

图例如下
这里写图片描述
0.7f为未隐藏部分,届时拉出content时隐藏的0.3f会一并拉出

其余部分则只需加上

// 设置menu的缩放        ViewHelper.setScaleX(mMenu, leftscale);        ViewHelper.setScaleY(mMenu, leftscale);        // 设置menu的透明度        ViewHelper.setAlpha(mMenu, leftalpha);        // 设置content缩放的中心点 ViewHelper.setPivotX(mContent, 0);        ViewHelper.setPivotY(mContent, mContent.getHeight() / 2);        // 设置content的缩放        ViewHelper.setScaleX(mContent, rightscale);        ViewHelper.setScaleY(mContent, rightscale);

便完成了。

内容来自慕课网QQ5.0侧滑菜单

0 0