带ViewPager偏移的Android动画
假设我在一个ViewPager上有View带ViewPager偏移的Android动画,android,Android,假设我在一个ViewPager上有ViewX。X的宽度和高度为50dp。现在,当我将ViewPager从第一页滚动到第二页时, 我想让X相对于当前滚动位置降低它的宽度和高度, 在ViewPager完全滚动到第二页后,高度和宽度至少为20dp 我试图使用onPageScrolled中的positionOffset值,但我似乎无法准确理解它的工作原理,并将其转换为像素 ViewPager.addOnPageListener(new ViewPager.OnPageChangeListener() {
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
将每页的值从0更改为1(position
)。根据您的示例,您可以将视图的比例从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);
}
}
[...]
});