Android 在活动转换中定义共享元素运动
我想定义两个活动之间的转换。我的目标是在活动之间共享一个图像和两个文本,但我希望为文本定义弧形运动(并保持图像的changeBounds) 我使用以下设置样式:Android 在活动转换中定义共享元素运动,android,animation,shared-element-transition,activity-transition,Android,Animation,Shared Element Transition,Activity Transition,我想定义两个活动之间的转换。我的目标是在活动之间共享一个图像和两个文本,但我希望为文本定义弧形运动(并保持图像的changeBounds) 我使用以下设置样式: <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowActivityTransitions">true</item> <item n
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowSharedElementsUseOverlay">false</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:transitionOrdering="together">
<changeBounds>
<targets>
<target android:excludeId="@id/image2"/>
</targets>
</changeBounds>
<changeBounds>
<targets>
<target android:targetId="@id/image2"/>
</targets>
<arcMotion android:maximumAngle="90"
android:minimumHorizontalAngle="90"
android:minimumVerticalAngle="0"/>
</changeBounds>
</transitionSet>
问题是,此细节\u共享\u输入不适用于动画:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime">
<arcMotion android:minimumHorizontalAngle="45"
android:minimumVerticalAngle="45">
<targets>
<target android:targetId="@id/image2"/>
</targets>
</arcMotion>
<autoTransition>
<targets>
<target android:excludeId="@id/image2"/>
</targets>
</autoTransition>
</transitionSet>
解决方案如下:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowSharedElementsUseOverlay">false</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:transitionOrdering="together">
<changeBounds>
<targets>
<target android:excludeId="@id/image2"/>
</targets>
</changeBounds>
<changeBounds>
<targets>
<target android:targetId="@id/image2"/>
</targets>
<arcMotion android:maximumAngle="90"
android:minimumHorizontalAngle="90"
android:minimumVerticalAngle="0"/>
</changeBounds>
</transitionSet>
您必须定义动画,该动画包含您将要创建的动画
以后再定义李>
将arcMotion放在changeBounds内
最重要的一点:忽略“此处不允许弧形运动”
微弱的警告强>