Android ViewPager动画库应用程序
我正在尝试更改我的ViewPager过渡动画。 当您从一张照片切换到下一张照片时,我希望具有与默认图库相同的行为。它基本上是一个动画,当前页面向左移动,而下一个页面从后面移动并变大 我已经看到我可以用PageTransformer更改动画Android ViewPager动画库应用程序,android,animation,android-viewpager,Android,Animation,Android Viewpager,我正在尝试更改我的ViewPager过渡动画。 当您从一张照片切换到下一张照片时,我希望具有与默认图库相同的行为。它基本上是一个动画,当前页面向左移动,而下一个页面从后面移动并变大 我已经看到我可以用PageTransformer更改动画 pager.setPageTransformer(false, new PageTransformer() { @Override public void transformPage(View page, float posi
pager.setPageTransformer(false, new PageTransformer() {
@Override
public void transformPage(View page, float position) {
if (position < 0) {
} else {
final float normalizedposition = Math.abs(Math.abs(position) - 1);
page.setScaleX(normalizedposition / 2 + 0.5f);
page.setScaleY(normalizedposition / 2 + 0.5f);
}
}
});
pager.setPageTransformer(错误,新的PageTransformer(){
@凌驾
公共页面(查看页面、浮动位置){
如果(位置<0){
}否则{
最终浮动规格化位置=数学abs(数学abs(位置)-1);
第页设置刻度(标准化位置/2+0.5f);
第页设置刻度(标准化位置/2+0.5f);
}
}
});
这样,我就可以让当前页面向左滑动了,没关系。
新页面从小到大,这也没关系。但是,页面从右到中。我想删除翻译,并已经在中间,但小,隐藏在当前页。< /P>
如果我添加page.setTranslationX(1080*((位置))代码>接下来的页面停留在屏幕的中间,但是它们在当前页面上方的所有时间都是可见的。如果我也将alpha添加到页面中,则显示的页面不会隐藏在旧页面的后面
我试图签入gallery应用程序的源代码,但没有找到任何对transformPage
功能的引用。结果很简单。它在android开发者网站的演示中
public class DepthPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.75f;
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1);
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(1 - position);
// Counteract the default slide transition
view.setTranslationX(pageWidth * -position);
// Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE
+ (1 - MIN_SCALE) * (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0);
}
}
}
公共类DepthPageTransformer实现ViewPager.PageTransformer{
专用静态最终浮动最小刻度=0.75f;
公共页面(视图、浮动位置){
int pageWidth=view.getWidth();
if(位置<-1){/[-无穷大,-1)
//这个页面在屏幕的左边。
视图。setAlpha(0);
}否则,如果(位置)