我希望图像水平移动.即图像应从左端底角移动到右端底角一次.无需再次回到左下角.
我试过的那段代码是
<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>
Run Code Online (Sandbox Code Playgroud)
这会将图像从左向右移动.但它再次走向左侧.谁能告诉我如何解决这个问题?
Reu*_*ton 77
你已成为每个人首先对Android动画产生的巨大误解的受害者:动画ImageView(或任何类型的视图)实际上并未移动 (或缩放或旋转或褪色).这都是一个技巧......动画本质上是屏幕合成引擎的最后一分钟指令,用x/y偏移视图,用z旋转等等.视图的基础位置/大小/角度/ alpha永远不会真正改变.
因此,当动画结束时,您的图像似乎会快速回到起点,因为它实际上从未离开过它.
这就是说,你可以实现通过添加你一个简单的方法要什么android:fillAfter="true"给你的<translate>标签.请记住,图像并没有真正移动.如果您需要在动画结束时更新布局,请勾选AnimationListener并执行此操作onAnimationEnd().
Anj*_*nju 52
我得到了它...而不是使用那个动画xml文件,我在java文件中写道.
Animation animation = new TranslateAnimation(0, 500,0, 0);
animation.setDuration(1000);
animation.setFillAfter(true);
myImage.startAnimation(animation);
myImage.setVisibility(0);
Run Code Online (Sandbox Code Playgroud)
现在图像从左向右移动,然后它变得不可见......因此动画!:)
Rac*_*nda 19
翻译动画可以改变对象的视觉外观,但它们不能更改对象本身.也就是说,如果您将一个翻译动画应用于视图,它将移动到一个新位置,但其点击事件不会被触发; 点击事件仍然会在之前的位置被触发.
发生这种情况是因为视图仍处于原始位置.为了克服这个问题,我们可以使用实际移动对象的ObjectAnimation.对象动画是实际移动对象的唯一动画.
您可以使用ObjectAnimator创建翻译动画.
ObjectAnimator transAnimation= ObjectAnimator.ofFloat(view, propertyName, fromX, toX);
transAnimation.setDuration(3000);//set duration
transAnimation.start();//start animation
Run Code Online (Sandbox Code Playgroud)
view -this是要应用动画的视图propertyName-要设置动画的属性.FromX,toX-动画随时间变化的一组值.
| 归档时间: |
|
| 查看次数: |
85731 次 |
| 最近记录: |