首页 > 解决方案 > Xamarin Android 动画更改位置

问题描述

我的相对布局中有一个图像视图。我正在尝试将此图像视图从左向右移动

for (int i = 0; i < 5; i++)
{
    imgEl.Left += 10;
    imgEl.SetZ(100);
    //Thread.Sleep(100);
 }

第一:我看不到它的运动。

第二:有时它会受到另一个控制。

标签: androidxamarin

解决方案


首先。您不是在操纵 X 坐标。其次,如果您取消注释Thread.Sleep(100)并且您在 UI 线程上,您将阻止它并且不会发生动画。

你为什么不用它ObjectAnimator来做你的动画呢?

将图像向右移动 100 像素就像这样简单:

var animation = ObjectAnimator.OfFloat(imageView, "translationX", 100f);
animation.SetDuration(250);
animation.Start();

imageView对您的图像的引用在哪里。translationX是正在动画的属性。100f是动画的值。

无需制作自己的循环或创建线程或任何东西。


推荐阅读