Android。重力变化动画
Android. Animation on gravity change
我在另一个中有一个 FrameLayout。它与中心对齐。
不,我想通过改变它的重力将它对齐到顶部,但我也想为这个变化设置动画。
我已经在这里 找到了这个答案,但是 LayoutTransition.CHANGING 在那里使用需要 API 16。
我们的应用程序的 minSdk 是 14。关于如何设置引力变化动画有什么建议吗?
提前致谢
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/bg"
android:scaleType="centerCrop"/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:animateLayoutChanges="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/container_bg"/>
<EditText
android:layout_gravity="center_vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
</FrameLayout>
</FrameLayout>
添加
compile 'com.android.support:transition:25.2.0'
到您的应用依赖项。
然后,在更改引力之前添加此行(来自 android.support.transition 包的 TransitionManager)
TransitionManager.beginDelayedTransition(parentOfAnimatedView);
例如
mContainer.setOnClickListener(v -> {
TransitionManager.beginDelayedTransition((ViewGroup) mContainer.getParent());
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mContainer.getLayoutParams();
layoutParams.gravity = Gravity.TOP;
mContainer.setLayoutParams(layoutParams);
});
我在另一个中有一个 FrameLayout。它与中心对齐。
不,我想通过改变它的重力将它对齐到顶部,但我也想为这个变化设置动画。
我已经在这里 找到了这个答案,但是 LayoutTransition.CHANGING 在那里使用需要 API 16。
我们的应用程序的 minSdk 是 14。关于如何设置引力变化动画有什么建议吗?
提前致谢
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/bg"
android:scaleType="centerCrop"/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:animateLayoutChanges="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/container_bg"/>
<EditText
android:layout_gravity="center_vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
</FrameLayout>
</FrameLayout>
添加
compile 'com.android.support:transition:25.2.0'
到您的应用依赖项。 然后,在更改引力之前添加此行(来自 android.support.transition 包的 TransitionManager)
TransitionManager.beginDelayedTransition(parentOfAnimatedView);
例如
mContainer.setOnClickListener(v -> {
TransitionManager.beginDelayedTransition((ViewGroup) mContainer.getParent());
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mContainer.getLayoutParams();
layoutParams.gravity = Gravity.TOP;
mContainer.setLayoutParams(layoutParams);
});