使用ViewPropertyAnimation将对象从不可见缩放到可见

时间:2018-11-26 19:25:07

标签: java xml xamarin

是否可以使用ViewPropertyAnimation使对象从不可见变为可见? 我想将其移动到一个位置。当我的物体移动到这个位置时,我想增加它的尺寸,就像原来的一样。

btn.Animate()
.TranslationX(0)
.TranslationY(-250)
.SetDuration(1000)
.SetInterpolator(new OvershootInterpolator(4))
.ScaleXBy(0).ScaleX(1);

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"><android.support.design.widget.FloatingActionButton

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:id="@+id/button1" />

</RelativeLayout>

我的对象向右移动,但是大小保持不变。enter image description here

1 个答案:

答案 0 :(得分:0)

您可以先设置ScaleX(0),然后使用ScaleX(1)进行设置,以通过某种触发将大小增加到原始大小,例如,单击一个按钮。 所以代码是这样的:

[Activity(Label = "Animation", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
    FloatingActionButton btn;
    Button btn2;
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);
        btn = FindViewById<FloatingActionButton>(Resource.Id.button1);
        btn2 = FindViewById<Button>(Resource.Id.button2);
        btn2.Click += StartAnimate;
        btn.Animate().SetDuration(0).ScaleX(0);
    }

    private void StartAnimate(object sender, EventArgs e)
    {
        btn.Animate().SetStartDelay(100).TranslationX(0).TranslationY(-250).SetDuration(1000).SetInterpolator(new OvershootInterpolator(4)).ScaleX(1);
    }
}