使用HorizontalScrollView实现侧滑效果(3)

本文介绍了如何使用onScrollChanged()方法实现滑动菜单时的动画效果,包括内容区域的缩放和平移,以及菜单本身的放大效果。通过设置不同的缩放比例和中心点,实现了平滑的视觉过渡。

本文介绍在前面的基础上增加更多的效果,主要是通过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);


2.滑出时菜单放大

与上面相似

float leftScale = 1.0f - 0.3f * scale;
mMenu.setTranslationX(l * 0.7f);
mMenu.setScaleX(leftScale);
mMenu.setScaleY(leftScale);
通过setTranslateX(l * 0.7f)设置延迟效果

alpha类似







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值