我想像Marquee图像一样制作图像滑块?

时间:2017-03-04 17:19:24

标签: android imageview marquee

http://www.talk4u.in/TagoreAcadmy/marque.html

这个我的网址是html格式现在我想要像这样的bulid图像滑块但是我不想使用webview。我想用android视图开发 和图像移动应该从地球重新开始到结束。

我有来自mysql数据库的多重图像url fatch,而不像marquee那样在滑块上显示。

谢谢

1 个答案:

答案 0 :(得分:1)

将ValueAnimator和setTranslationX与"两个图像"一起使用。

请参阅:Android move background continuously with animation

此外,在您的情况下,您需要更改滚动方向。 注意"修改"下方。

final ImageView backgroundOne = (ImageView) findViewById(R.id.background_one);
final ImageView backgroundTwo = (ImageView) findViewById(R.id.background_two);    
final ValueAnimator animator = ValueAnimator.ofFloat(0.0f, -1.0f); // Modified
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setInterpolator(new LinearInterpolator());
animator.setDuration(10000L);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        final float progress = (float) animation.getAnimatedValue();
        final float width = backgroundOne.getWidth();
        final float translationX = width * progress;
        backgroundOne.setTranslationX(translationX);
        backgroundTwo.setTranslationX(translationX - width);
    }
});
animator.start();

<强> EDIT1:

如果您想使用来自服务器的图像,我建议您使用Picasso图像库。 http://square.github.io/picasso/

  1. 将Picasso依赖项添加到Build.gradle文件中。 (

    • 在下面添加依赖项
      编译&#39; com.squareup.picasso:picasso:2.5.2&#39;
    • 并按Android Studio顶部的同步按钮
  2. 用毕加索加载图片。

    final ImageView backgroundOne = (ImageView) findViewById(R.id.background_one);
    final ImageView backgroundTwo = (ImageView) findViewById(R.id.background_two);
    
    Picasso.with(this).load("http://www.talk4u.in/wp-content/uploads/2017/02/cropped-logo2.png").into(backgroundOne);
    
    Picasso.with(this).load("http://www.talk4u.in/wp-content/uploads/2017/02/cropped-logo2.png").into(backgroundTwo);
    
    final ValueAnimator animator = ValueAnimator.ofFloat(0.0f, -1.0f); // Modified
    animator.setRepeatCount(ValueAnimator.INFINITE);
    animator.setInterpolator(new LinearInterpolator());
    animator.setDuration(10000L);
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            final float progress = (float) animation.getAnimatedValue();
            final float width = backgroundOne.getWidth();
            final float translationX = width * progress;
            backgroundOne.setTranslationX(translationX);
            backgroundTwo.setTranslationX(translationX - width);
        }
    });
    
    animator.start();
    
    • 添加访问互联网的网络权限。