5

全景背景

我有一个全景背景作为天空,我想从左到右然后从右到左移动以模拟移动的云动画作为屏幕背景。

这应该无限期地重复,然后在最右边然后回到最左边..

我尝试了以下方法:

  Animation left = AnimationUtils.loadAnimation(MainActivity.this, com.icare.kids.R.anim.view_transition_out_right);
  left.setRepeatCount(Animation.INFINITE);
  left.setRepeatMode(Animation.REVERSE);
  left.setDuration(3000);

  findViewById(id.cloud).startAnimation(left);

但这似乎不起作用......有什么解决方案吗?

我目前正在将图像设置为 ImageView,如下所示:

<ImageView
    android:id="@+id/cloud"
    android:layout_width="3000dip"
    android:layout_height="wrap_content"
    android:layout_below="@id/topbar"
    android:scaleType="matrix"
    android:src="@drawable/bgpan" />

我怎样才能将图像设置到屏幕上,从最左边开始,如下所示,以帮助实现全景动画效果: 在此处输入图像描述

4

2 回答 2

3

在所有电话范围内高效且快速的最佳解决方案实际上是仅对云进行动画处理,同时保持背景静止。您还可以在速度上添加一些变量,从而为云的速度增加一些随机性,这样您就不会得到单调循环。

实施细节和解决方案取自this answer

于 2014-09-08T05:34:09.877 回答
0

您可能可以尝试的一件事是使用带有假拖动的 Viewpager 对象,您可以在其中不断地将背景重新添加到生成的新视图中,同时禁用用户输入。

这会给人一种你正在尝试做的事情的错觉。

因此,假设您的适配器中有 4 个视图,每个视图仅包含一个填充整个屏幕的图像资源,并且 Viewpager 的假拖动从视图 A 平移到视图 B,绘制视图 C 并绘制视图 D,然后它假拖动从视图 B 到视图 C 并再次绘制视图 A

我很好奇这是否对你有用

于 2013-06-17T21:12:21.893 回答