gpt4 book ai didi

带有 ViewPager 偏移量的 Android 动画

转载 作者:行者123 更新时间:2023-11-29 18:45:31 28 4
gpt4 key购买 nike

假设我在 ViewPager 之上有一个 View X。 X 的宽度和高度均为 50dp。现在,当我将 ViewPager 从第一页滚动到第二页时,我想让 X 相对于当前滚动位置降低它的宽度和高度,在 ViewPager 完全滚动到第二页后,高度和宽度至少为 20dp。

我正在尝试使用 onPageScrolled 中的 positionOffset 值,但我似乎无法弄清楚它是如何工作的,也无法将其转换为像素。

ViewPager.addOnPageListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

System.out.println(positionOffset);

}

});

谢谢,感谢帮助。

最佳答案

positionOffset 将每个页面 (position) 的值从 0 更改为 1。根据您的示例,您可以将 View 的比例从 100% 更改为 40%。使用 positionOffset 作为 x,函数将为 y=-0.6x+1。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if(position == 0) {
yourView.setScaleX((float)(-0.6 * positionOffset) + 1);
yourView.setScaleY((float)(-0.6 * positionOffset) + 1);
} else {
yourView.setScaleX(0.4f);
yourView.setScaleY(0.4f);
}
}

[...]

});

关于带有 ViewPager 偏移量的 Android 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52106937/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com