【问题标题】:Animate Image transitions in AndroidAndroid中的动画图像过渡
【发布时间】:2019-05-31 13:26:04
【问题描述】:

我有 4 个 ImageViews(请参阅下面的图片)

4张图片的代码如下:

<LinearLayout
    android:id="@id/LinearLayout_fromAddItemActivity_Priority"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toTopOf="@+id/FAB_fromAddItemActivity_AddItem"
    app:layout_constraintTop_toBottomOf="@+id/TextView_fromAddItemActivity_SubtitlePriority"
    app:layout_constraintVertical_chainStyle="packed">

<ImageView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:onClick="setPriority"
        android:tag="@{Constant.ENUM_PRIORITY_P1}"
        android:contentDescription="@string/ContentDescription_fromAddItemActivity_Priority1Icon"
        app:srcCompat="@drawable/ic_priority_1"/>
<ImageView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:onClick="setPriority"
        android:tag="@{Constant.ENUM_PRIORITY_P2}"
        android:contentDescription="@string/ContentDescription_fromAddItemActivity_Priority2Icon"
        app:srcCompat="@drawable/ic_priority_2"/>
<ImageView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:onClick="setPriority"
        android:tag="@{Constant.ENUM_PRIORITY_P3}"
        android:contentDescription="@string/ContentDescription_fromAddItemActivity_Priority3Icon"
        app:srcCompat="@drawable/ic_priority_3"/>
<ImageView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:onClick="setPriority"
        android:tag="@{Constant.ENUM_PRIORITY_P4}"
        android:contentDescription="@string/ContentDescription_fromAddItemActivity_Priority4Icon"
        app:srcCompat="@drawable/ic_priority_4"/>

点击这些图片时,我希望它们如下图所示转换,点击的图片位于顶部!

有人可以帮我解决这些吗?

(我对Android中的过渡和动画不太了解,我只知道如何在activity之间进行过渡)。

【问题讨论】:

    标签: android kotlin android-animation android-transitions


    【解决方案1】:

    我认为您可以在 LinearLayout 中设置 android:animateLayoutChanges="true",然后将需要隐藏的 ImageView 的可见性设置为 View.GONE

    【讨论】:

      【解决方案2】:

      您可以使用此功能将视图水平移动到屏幕的中心

      private fun moveViewToScreenCenter(view:View) {
      
       val dm = DisplayMetrics()
        getWindowManager().getDefaultDisplay().getMetrics(dm)
        val originalPos = IntArray(2)
        view.getLocationOnScreen(originalPos)
        val xDelta = (dm.widthPixels - view.getMeasuredWidth() - originalPos[0]) / 2
        val yDelta = originalPos[1]//because you want to centre it horizontally 
        val animSet = AnimationSet(true)
        animSet.setFillAfter(true)
        animSet.setDuration(1000)
        animSet.setInterpolator(BounceInterpolator())
        val translate = TranslateAnimation(0, xDelta, 0, yDelta)
        animSet.addAnimation(translate)
        val scale = ScaleAnimation(1f, 2f, 1f, 2f, ScaleAnimation.RELATIVE_TO_PARENT, .5f, ScaleAnimation.RELATIVE_TO_PARENT, .5f)
        animSet.addAnimation(scale)
        view.startAnimation(animSet)
      }
      

      【讨论】:

      • 当我点击一张图片时,它会消失而其他人会留下来。这与我想要的相反。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      相关资源
      最近更新 更多