【问题标题】:How to do smooth TranslateAnimation如何做平滑的TranslateAnimation
【发布时间】:2013-07-23 02:02:41
【问题描述】:

我刚开始使用 Xamarin 在 C# 中开发 android 应用程序。 我正在玩动画,但很难找到任何好的教程。 我编写了下面的代码,它有效,但是我的irisImageView 不是平稳移动,而是跳到该位置?

如何平滑地移动图像?

protected override void OnCreate (Bundle bundle)

    {

        base.OnCreate (bundle);



        // Set our view from the "main" layout resource

        SetContentView (Resource.Layout.Main);



        ImageView faceImageView = FindViewById<ImageView> (Resource.Id.faceImageView);

        ImageView irisImageView = FindViewById<ImageView> (Resource.Id.irisImageView);


        AnimateIris (irisImageView);

    }



    public void AnimateIris(ImageView iris)

    {

        Animation anim = new TranslateAnimation(10,10,150,150);

        anim.Duration = 5000;

        iris.StartAnimation (anim);



    }

【问题讨论】:

    标签: animation xamarin.android xamarin-studio


    【解决方案1】:

    这里有几件事要看:

    1. 在您当前的示例中,您有new TranslateAnimation(10,10,150,150),这意味着您的动画在相同的 X 和 Y 坐标处开始和结束。更新结束的 X 和 Y 位置,以便出现动画。
    2. 您可能会看到跳转到该位置,因为图像动画持续了 5 秒(但由于起点/终点相同而没有移动),然后移动到您的 Android axml 文件指定的位置。例如,如果您的ImageView 在左上角,那么我敢打赌它会在 5 秒后从您的起点跳到左上角。

    所以首先尝试更新您的TranslateAnimation,然后在您的布局中弄乱ImageView 的位置!

    【讨论】:

    • 啊,你是对的,我误解了参数:) 现在它移动正确了。但是在动画之后它会跳回来。有什么办法可以保住新职位?
    • 太棒了!尝试设置anim.FillAfter = true; 看看是否会阻止它跳回。
    • 像魅力一样工作!谢谢!顺便提一句。知道有什么好地方可以找到这些东西的教程吗?
    • 不客气!不幸的是,我不知道有什么好的教程……您可能会寻找 Android 动画教程,然后尝试弄清楚如何使用 Xamarin 和 C# 而不是 Java。否则 Stack Overflow 是一个很好的资源。
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2017-08-05
    • 2011-11-10
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    相关资源
    最近更新 更多