平滑地单向滑动图片

16

我有一张对称的图片,想要让它平滑地从右到左无限移动。我尝试使用TranslateAnimation,但是首先我必须正确设置我的图片,这相当困难,因为该图片使用了整个屏幕宽度,我应该设置负边距。是否有其他解决方案?而且是否有可能在不移动ImageView的情况下移动图片?


你也可以使用Pager来实现这个编程功能。这里有一个演示链接:http://codetheory.in/android-image-slideshow-using-viewpager-pageradapter/ - Sameer Donga
是的,'正确'的方法是使用ViewPager来滑动图片。 - Muz
3个回答

13

最终我自己解决了这个问题,解决方法是将两张图片重叠放置,然后测量屏幕宽度并使用两个TranslateAnimation,一个从屏幕宽度到0,另一个从0到负的屏幕宽度:

    TranslateAnimation anim = new TranslateAnimation(0, -screenWidth, 0, 0);
    TranslateAnimation anim2 = new TranslateAnimation(screenWidth, 0, 0, 0);
    anim.setDuration(5000);
    anim.setRepeatCount(Animation.INFINITE);
    anim.setInterpolator(new LinearInterpolator());
    anim2.setDuration(5000);
    anim2.setRepeatCount(Animation.INFINITE);
    anim2.setInterpolator(new LinearInterpolator());
    backgroundOverlayImage.startAnimation(anim);
    backgroundOverlayImage2.startAnimation(anim2);

2
我认为这就是您试图要做的事情:
        TranslateAnimation anim = new TranslateAnimation(0, -1000, 0, 0);
        anim.setDuration(1500);
        anim.setFillAfter(true);
        anim.setRepeatCount(0);
        anim.setInterpolator(this, Android.Resource.Animation.LinearInterpolator);

编辑: 最后不要忘记imageView.startAnimation(anim);


1
这个解决方案存在一些问题,当图像移动太多时,它可能会显示空白区域,我必须设置负边距才能使其正常工作。 - falsetto

0

虽然你已经得到了答案,尝试这个代码库,它将解决你关于幻灯片的所有疑问,并为你的视图添加自定义动画!

Preview


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接