android - 如何在场景转换动画中更改 TextView 大小?

标签 android animation

请帮我设置场景转换动画。

这是我的想法: enter image description here

当我单击 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/

相关文章:

java - 如何在动画后面留下痕迹?

android - 构建 Android 应用程序项目时出错

android - 收到的短信在 TextView 中未完全显示

android - 在android Translate-Animation中如何在另一个view2上方翻译view1,两个 View 以不同的布局退出

graphics - 模拟老式 Sprite 的闪烁(理论和概念)

javascript - FabricJS 动画 :selected object on canvas during mouse:up and :down

java - textView.SetText 仅在文本较长时有效

android - 无法下载未知扩展

android - 获取所有外部安装的设备(USB、SD 卡)

CSS 动画向前然后向后