【发布时间】:2014-09-08 13:34:09
【问题描述】:
我有一个全景背景作为天空,我想从左到右移动,然后从右到左移动以模拟移动的云动画作为屏幕背景。
这应该无限重复,然后在最右边然后返回最左边..
我尝试了以下方法:
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" />
如何将图像设置为从最左边开始,如下图所示,以帮助实现全景动画效果:
【问题讨论】:
-
为什么不移动位图而不是文本视图?我的意思是,如果你在内存中加载了背景(3000px),你真的浪费了很多内存,甚至不可见......你应该只在动画的每一帧中剪切一张位图,然后得到 x +OFFSET 以此类推,每一帧都必须检查边界,看看你是否必须再次从左边开始......
-
Stackoverflow 有一些相关的答案,看:stackoverflow.com/a/17275163/2684