【问题标题】:How to start new activity from the point where it is clicked如何从单击的位置开始新的活动
【发布时间】:2016-11-25 22:07:19
【问题描述】:

当我单击任何图像或文本时,活动应该从被单击的图像或文本的位置开始。我试过了

overridingTransition(R.anim.xyz,R.anim.z);

但这是静态的。我想从图像位置开始活动,而不是从屏幕的左右或角落开始

【问题讨论】:

标签: android android-animation


【解决方案1】:

Activity 共享元素过渡

来源:https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition

您需要做的是提供一个过渡名称,两个 Activite 都可以使用它来创建过渡动画。

因此,您在第一个活动中单击的ImageView 需要属性android:transitionName="your_shared_transition_name",然后您还需要在目标活动中为ImageView 设置相同的属性。

要使用共享转换名称,您需要为启动意图提供一个选项 Bundle,如下所示:

Intent intent = new Intent(this, TargetActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.
    makeSceneTransitionAnimation(this, (View)yourImageView, "your_shared_transition_name");
startActivity(intent, options.toBundle());

要使活动支持这种类型的转换,您需要将属性android:windowContentTransitions 添加到您的Theme

...
 <item name="android:windowContentTransitions">true</item>
...

-按照上面的链接教程进行更详细的说明

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多