Android 使用 setWallpaperOffsets 使用 ViewPager 动画墙纸滚动
Android animate wallpaper scroll with ViewPager using setWallpaperOffsets
我正在制作一个 android 启动器,我想在页面滚动时让墙纸滚动,所以我将 onPageChangeListener 添加到 mViewPager 并更改墙纸偏移量
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int p1, float p2, int p3) {
}
@Override
public void onPageSelected(int p1) {
WallpaperManager.getInstance(c).setWallpaperOffsets(v.getWindowToken(),(float)p1/(myPageItemsCount-1), 0);
}
@Override
public void onPageScrollStateChanged(int p1) {
}
});
问题是我想让壁纸在页面变化时平滑滚动,但是在我上面的代码中,它会直接将壁纸改变到相应的位置,请帮助。
这是我所做的,效果非常好:
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
WallpaperManager.getInstance(getBaseContext()).setWallpaperOffsets(pager.getWindowToken(), (float) (position + positionOffset) / (myPageItemsCount-1), 0);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
我正在制作一个 android 启动器,我想在页面滚动时让墙纸滚动,所以我将 onPageChangeListener 添加到 mViewPager 并更改墙纸偏移量
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int p1, float p2, int p3) {
}
@Override
public void onPageSelected(int p1) {
WallpaperManager.getInstance(c).setWallpaperOffsets(v.getWindowToken(),(float)p1/(myPageItemsCount-1), 0);
}
@Override
public void onPageScrollStateChanged(int p1) {
}
});
问题是我想让壁纸在页面变化时平滑滚动,但是在我上面的代码中,它会直接将壁纸改变到相应的位置,请帮助。
这是我所做的,效果非常好:
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
WallpaperManager.getInstance(getBaseContext()).setWallpaperOffsets(pager.getWindowToken(), (float) (position + positionOffset) / (myPageItemsCount-1), 0);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}