请帮我设置场景转换动画。
当我单击 TextView
(FirstActivity) 时,我想将此 TextView
共享到 SecondActivity,并更改和移动 View 大小。
当我打开(或关闭)SecondActivity 时,我的 TextView
移动(通过箭头 #1 或 #2)但没有大小改变。这看起来很难看。
这是我的代码:
主题(我为 FirstActivity 和 SecondActivity 使用这个主题):
<style name="AppTheme.MaterialAnimation.SharedViews">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowSharedElementEnterTransition">@transition/enter_shared_ui</item>
<item name="android:windowSharedElementExitTransition">@transition/exit_shared_ui</item>
</style>
enter_shared_ui.xml:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:interpolator="@android:interpolator/decelerate_cubic">
<changeBounds />
</transitionSet>
exit_shared_ui.xml
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:interpolator="@android:interpolator/decelerate_cubic">
<changeBounds />
</transitionSet>
如何在我的场景转换动画中改变 TextView 的大小?
更新:
启动 SecondActivity 的代码:
private fun openSecondScreen() {
val intent = Intent(this, SharedUIFinishActivity::class.java)
... // add another views to Pair
val thirdPair = Pair(tvSharedUISelect as View, getString(R.string.shared_ui_text))
val options = ActivityOptions.makeSceneTransitionAnimation(this,
... thirdPair)
startActivity(intent, options.toBundle())
}
对于两个 TextView
,我使用相同的转换名称。
最佳答案
要使 SharedElementTransition
正常工作,您必须为 Activity1 和 Activity2 中的 TextView 设置相同的转换名称。
确保名称相同,以便框架可以知道必须转换到哪个。
<TextView
...
android:transitionName="my_transition"/>
在Activity1中启动Activity2
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(getActivity(), textView, textView.getTransitionName()).toBundle());
关于android - 如何在场景转换动画中更改 TextView 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863726/