为什么动画将对象从底部移动到顶部而不是从顶部移动到底部?

时间:2019-06-04 10:32:30

标签: java android xml

问题是我的三个奖励容器,视频和mvp容器从下到上而不是从上到下进行动画制作 Three Containers are highlighted in image

动画代码

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="650"
     android:startOffset="1000">
    <translate
        android:fromYDelta="300"
        android:toYDelta="0"/>
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"/>
</set>

既然YDelta的值是300,而不是它减小到0,则动画应该从上到下进行动画制作,但实际上是从下到上的动画,为什么是这样?

MainActivity代码

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:background="#EAEFF9"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

    <TextView
        android:text="@string/title"
        android:textSize="25sp"
        android:textColor="@color/colorBlack"
        android:fontFamily="@font/mmedium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"
        android:id="@+id/tvTitle" android:layout_marginStart="8dp" android:layout_marginEnd="8dp"
        android:layout_marginTop="68dp" app:layout_constraintTop_toTopOf="parent"/>

    <TextView
        android:textSize="15sp"
        android:lineSpacingExtra="7dp"
        android:textAlignment="center"
        android:text="@string/subtitle"
        android:layout_width="250dp"
        android:textColor="@color/colorSilver"
        android:layout_height="wrap_content"
        android:id="@+id/tvSubTitle"
        android:fontFamily="@font/mlight"
        android:layout_marginTop="20dp"
        app:layout_constraintTop_toBottomOf="@+id/tvTitle" android:layout_marginStart="8dp"
        app:layout_constraintStart_toStartOf="parent" android:layout_marginEnd="8dp"
        app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.497"/>
    <ImageView
        android:contentDescription="Playing Cards"
        android:layout_width="180dp"
        android:layout_height="150dp" app:srcCompat="@drawable/ic_cards"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" android:id="@+id/ivCard" android:layout_marginTop="20dp"
        app:layout_constraintTop_toBottomOf="@+id/tvSubTitle" android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp" app:layout_constraintHorizontal_bias="0.502"/>

    <LinearLayout
        android:weightSum="3"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        android:layout_marginTop="20dp"
        android:orientation="horizontal"
        app:layout_constraintTop_toBottomOf="@id/ivCard"
        android:id="@+id/parentContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <LinearLayout
            android:id="@+id/rewardContainer"
            android:orientation="vertical"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content">
        <LinearLayout
                android:gravity="center"
                android:layout_marginStart="10dp"
                android:layout_marginEnd="10dp"
                android:orientation="vertical"
                android:background="@drawable/cardbg"
                android:layout_width="match_parent"
                android:layout_height="120dp">
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/colorBlack"
                    android:text="23"/>
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Rewards"/>
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/videoContainer"
            android:layout_width="0dp"
            android:layout_height="wrap_content">
        <LinearLayout
                android:gravity="center"
                android:layout_marginStart="10dp"
                android:layout_marginEnd="10dp"
                android:orientation="vertical"
                android:background="@drawable/cardbg"
                android:layout_width="match_parent"
                android:layout_height="120dp">
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:layout_width="wrap_content"
                    android:textColor="@color/colorBlack"
                    android:layout_height="wrap_content"
                    android:text="12"/>
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Videos"/>
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
            android:id="@+id/mvpContainer"
            android:orientation="vertical"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content">
        <LinearLayout
                android:gravity="center"
                android:layout_marginStart="10dp"
                android:layout_marginEnd="10dp"
                android:orientation="vertical"
                android:background="@drawable/cardbg"
                android:layout_width="match_parent"
                android:layout_height="120dp">
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:textColor="@color/colorBlack"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="5"/>
            <TextView
                    android:textAlignment="center"
                    android:fontFamily="@font/mmedium"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="MVP"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

    <Button
        android:text="Next Course"
        android:textColor="#FFF"
        android:layout_width="200dp"
        android:background="@drawable/btnbg"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"
        android:id="@+id/btnNextCoruse" android:layout_marginEnd="8dp" android:layout_marginStart="8dp"
        android:layout_marginTop="50dp" app:layout_constraintTop_toBottomOf="@+id/parentContainer"/>

4 个答案:

答案 0 :(得分:0)

很正常。 0,0点是顶部/左侧。

因此,从300到0会将对象从底部移动到顶部。

答案 1 :(得分:0)

“您可以从上到下使用它”

<translate
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromYDelta="-300"
        android:toYDelta="0"
        />

答案 2 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="650"
android:startOffset="1000">
<translate
android:fromYDelta="-300" 
android:toYDelta="0"/>
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>

答案 3 :(得分:0)

在Android中,最左上角的位置将是(0,0) x值将向左增加,Y值将向底部增加

请根据其更新代码

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="650"
android:startOffset="1000">
<translate
     android:fromYDelta="Y_START_POINT"
     android:toYDelta="Y_END_POINT"/>
<translate
     android:fromXDelta="X_START_POINT"
     android:toXDelta="X_END_POINT"/>
<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"/>

相关问题