向下滑动动画

时间:2011-08-26 13:29:09

标签: android animation xamarin.android

我正在尝试动画TextViewImageView后面向下滑动。我有以下布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TextView
    android:id="@+id/description"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:layout_margin="16dp"
    android:layout_marginTop="-10dp"
    android:background="@drawable/image_background"
    android:visibility="invisible" 
    android:layout_below="@id/image"
    />
  <ImageView
    android:id="@+id/image"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/image_background"
    android:adjustViewBounds="true"
    android:layout_margin="6dp"
    android:layout_below="@id/question"
  />
</RelativeLayout>

我使用的是RelativeLayout而非LinearLayout,以使description TextView显示在ImageView后面(z-index-wise)。

请注意,TextView的文字长度可能会有所不同,填写时文字的长度通常比图片长。 RelativeLayout上方和下方还有其他观点。

我试过这个动画

<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromYDelta="-100%p" android:toYDelta="0"
      android:duration="@android:integer/config_longAnimTime"/>
  <scale android:fromYScale="0.0" android:toYScale="1.0"
      android:duration="@android:integer/config_longAnimTime" />
</set>

...并使用

descriptionView.Visibility = ViewStates.Visible;
Animation a = AnimationUtils.LoadAnimation(this, Resource.Animation.push_down);
descriptionView.StartAnimation(a);

然而,这是不稳定的,并没有从我认为它开始的地方开始,nore做缩放工作。我已经阅读了有关布局动画的内容,并且当可见性发生变化时动画可以自动触发,但我不知道如何。

如何让动画工作,是否有更简单的解决方案?

0 个答案:

没有答案