首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在共享元素过渡后使用动画

如何在共享元素过渡后使用动画
EN

Stack Overflow用户
提问于 2019-06-19 03:06:29
回答 1查看 56关注 0票数 0

我使用共享元素事务转到activity2,但在activity2中事务不起作用

代码语言:javascript
复制
ttb = AnimationUtils.loadAnimation(this, R.anim.ttb_animation);
slogan = findViewById(R.id.slogan);
slogan.startAnimation(ttb);

我尝试使用延迟来处理它的工作,但是我不需要它。

代码语言:javascript
复制
Intent goto_activity2 = new Intent(SplashAct.this, Activity2.class);
            ActivityOptionsCompat option = ActivityOptionsCompat
                    .makeSceneTransitionAnimation(SplashAct.this, app_logo, ViewCompat.getTransitionName(app_logo));
            startActivity(goto_activity2, option.toBundle());
            finish();

xml代码

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="800"
    android:startOffset="100"
    android:interpolator="@android:anim/accelerate_interpolator"
    >

    <translate
        android:fromYDelta="350"
        android:toYDelta="0"
        />

    <scale
        android:fromXScale="1.2"
        android:fromYScale="1.2"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0"
        />

</set>

activity2中的转换不起作用

EN

回答 1

Stack Overflow用户

发布于 2019-06-19 03:26:58

对于共享元素转换,您需要在两个活动中为各自的视图提供相同的transtionName。在活动A中,假设您有一个图像视图

代码语言:javascript
复制
 <ImageView
      android:id="@+id/ivImage"
      android:transitionName="transitionName"
      android:scaleType="centerCrop"
      android:layout_width="match_parent"
      android:layout_height="160dp" />

在你的活动B中:

代码语言:javascript
复制
 <ImageView
      android:id="@+id/ivSenderImage"
      android:transitionName="transitionName"
      android:scaleType="centerCrop"
      android:layout_width="match_parent"
      android:layout_height="160dp" />

然后,当导航到另一个活动时,您所要做的就是:

代码语言:javascript
复制
Intent intent = new Intent(AcitvityA.this, ActivityB.class);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(this, (View)ivImage, "transitionName");
startActivity(intent, options.toBundle());

这就是全部,使用过渡名称确保即使你在源层次结构中有多个具有相同过渡名称的视图,它基本上也能够选择正确的视图来开始动画。

或者你也可以检查这个https://medium.com/@aitorvs/android-shared-element-transitions-for-all-b90e9361507d。和https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56655553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档