Android 翻译动画

Android 翻译动画,android,Android,我希望图像水平移动。 i、 e图像应从左下角移动到右下角一次。 不需要再回到左端下角 我试过的那段代码是 <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator"> <translate android:fromXDelta="0%p" android:toXDelta="200%p" and

我希望图像水平移动。 i、 e图像应从左下角移动到右下角一次。 不需要再回到左端下角

我试过的那段代码是

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">

<translate android:fromXDelta="0%p" android:toXDelta="200%p" 
android:duration = "2000"/>
</set>

这会将图像从左移到右。但它又来到了左边。
有谁能告诉我如何解决这个问题吗?

你成了大家首先对Android动画产生误解的受害者:动画的
图像视图(或任何类型的视图)实际上没有移动(或缩放、旋转或褪色)。这都是骗局。。。动画本质上是屏幕合成引擎的一些最后一分钟指令,用于将视图偏移x/y、旋转z等。视图的基本位置/大小/角度/alpha从未真正改变

因此,当动画结束时,图像似乎会捕捉回起点,因为它实际上从未离开过起点


也就是说,您可以通过向
标记添加
android:fillAfter=“true”
来实现您想要的。请记住,图像并没有真正移动。如果您需要在动画结束时更新布局,请连接一个,并在
onAnimationEnd()

中完成。我得到了它…我在java文件中编写了动画xml文件,而不是使用该文件

Animation animation = new TranslateAnimation(0, 500,0, 0);
animation.setDuration(1000);
animation.setFillAfter(true);
myImage.startAnimation(animation);
myImage.setVisibility(0);

现在,图像从左向右移动,然后它变得不可见…因此设置了动画!!!:)

平移动画可以更改对象的视觉外观,但不能更改对象本身。也就是说,如果将“平移”动画应用于视图,它将移动到新位置,但不会触发其单击事件;单击事件仍将在其先前位置激发

这是因为视图仍处于其原始位置。为了克服这个问题,我们可以使用ObjectAnimation来实际移动对象。 对象动画是唯一实际移动对象的动画

可以使用ObjectAnimator创建平移动画

ObjectAnimator transAnimation= ObjectAnimator.ofFloat(view, propertyName, fromX, toX);
transAnimation.setDuration(3000);//set duration
transAnimation.start();//start animation
视图-这是要应用动画的视图 propertyName正在设置动画的属性。
FromX,toX—动画将在一段时间内设置动画的一组值

嗨,鲁本,我试过android:fillAfter=“true”…但和以前一样…然后我试过onAnimationEnd()。我把图像的可视性设置为不可见…但还是发生了同样的事情…有没有关于我做错了什么的线索?可能是因为你使用了a,但现在它几乎不重要了。为什么不重要呢?一些代码会使这成为一个很好的答案。这是一个很好的答案。我不知道为什么代码会起作用。没什么意义。试着在
setVisibility()方法中使用
View.VISIBLE
。setVisibility(0)有时不起作用…我不知道是不是…我一直保持View.INVISIBLE现在起作用了…。实际上,不可见是int==1,VISIBLE==0,gone==2,我在代码中的setVisibility也有问题,所以我把View.VISIBLE/View.INVISIBLE放进了。setVisibilityMine一直跳回到它原来的位置?我以为问题是翻译,然后留在原处?setFillAfter(true);如果你在动画后看不见视图,代码会起作用。android中的TranslateAnimation不会更改视图的实际位置。改用ObjectAnimator。不赞成使用此答案中的链接来驱动流量!最好在这里包含该链接的摘要引用,以防止链接腐烂!ObjectAnimator是从android 11引入的。所以,在以前版本的android上,您必须使用非官方的库。这是一个NineodelDroids库,您可以找到android 11的所有动画API,并与所有其他android版本一起使用: