标签: activity-transition

使用带有ChangeImageTransform的共享元素过渡在两个活动之间为ImageView设置动画

我试图将一个ImageView动画设置为Android API级别21中两个活动之间的另一个位置.由于Android L预览中的"MoveImage"已被删除,我使用" ChangeImageTransform "代替,但文档中的示例代码无法解决(这两个图像分别动画).

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeImageTransform>
        <targets>
            <target android:targetId="@id/ivA" />
            <target android:targetId="@id/ivB" />
        </targets>
    </changeImageTransform>
</transitionSet>
Run Code Online (Sandbox Code Playgroud)

有没有工作的例子?谢谢!

android android-5.0-lollipop activity-transition shared-element-transition

17
推荐指数
2
解决办法
2万
查看次数

如何在Android Lollipop中推迟片段的输入转换?

在Android Lollipop中,Activity#postponeEnterTransition()Activity#startPostponedEnterTransition()方法使Activity能够延迟开始进入和退出共享元素转换,直到加载所有数据.这些非常适合Activity过渡.

有没有办法在使用Fragment过渡时达到相同的效果?

android android-5.0-lollipop activity-transition shared-element-transition fragment-transitions

17
推荐指数
1
解决办法
7494
查看次数

活动转换错误,无法解析符号'@ transition/explode'

我正在尝试Activity Transitions,当我在我的values-21/styles.xml中粘贴下面的代码时,我收到错误:

无法解析符号'@ transition/explode'

<style name="BaseAppTheme" parent="android:Theme.Material">
  <!-- enable window content transitions -->
  <item name="android:windowContentTransitions">true</item>

  <!-- specify enter and exit transitions -->
  <item name="android:windowEnterTransition">@transition/explode</item>
  <item name="android:windowExitTransition">@transition/explode</item>

  <!-- specify shared element transitions -->
  <item name="android:windowSharedElementEnterTransition">
    @transition/change_image_transform</item>
  <item name="android:windowSharedElementExitTransition">
    @transition/change_image_transform</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android material-design android-5.0-lollipop activity-transition

17
推荐指数
2
解决办法
7054
查看次数

了解退出/重新输入共享元素转换

我正在对Android L中的共享元素转换进行一些基本的探索.我设置的简单示例在活动转换期间有一个从屏幕顶部转换到屏幕底部的图像视图,并且我已经延长了转换持续时间所以我可以看到工作正常.到目前为止,我遇到了两个问题,试图了解共享元素转换的工作原理.

1)仅使用Enter/Return转换(Exit/Reenter设置为null).输入转换很好,但是当按下后退按钮时,视图会动画一段时间,停止,然后重新出现在最终位置.似乎与此问题类似,但我已将所有Exist/Reenter过渡设置为null,因此不确定为什么会发生这种情况.

2)仅使用退出/重新转换时(Enter/Return设置为null).没有任何事情发生,视图在屏幕上向下转换,如下面的默认输入转换(300毫秒持续时间),当按下后退时,视图弹回到其原始位置.

如何使用退出/重新转换?

这是我的代码:

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/ic_launcher"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Animate!"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

activity_second.xml

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView2"
    android:src="@drawable/ic_launcher"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" />
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
        getWindow().setAllowEnterTransitionOverlap(false);
        getWindow().setAllowReturnTransitionOverlap(false);


        getWindow().setSharedElementExitTransition(exitTransition());
        getWindow().setSharedElementReenterTransition(reenterTransition());
        //getWindow().setSharedElementExitTransition(null);
        //getWindow().setSharedElementReenterTransition(null);


        setContentView(R.layout.activity_main);

        final View iView = findViewById(R.id.imageView);
        iView.setTransitionName("image");

        final Button button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new …
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop activity-transition shared-element-transition

14
推荐指数
2
解决办法
1万
查看次数

自定义循环显示转换在暂停时导致"java.lang.UnsupportedOperationException"?

我创建了一个自定义循环显示转换,用作Activity的enter转换的一部分(具体来说,我通过调用将转换设置为窗口的enter转换Window#setEnterTransition()):

public class CircularRevealTransition extends Visibility {
    private final Rect mStartBounds = new Rect();

    /**
     * Use the view's location as the circular reveal's starting position.
     */
    public CircularRevealTransition(View v) {
        int[] loc = new int[2];
        v.getLocationInWindow(loc);
        mStartBounds.set(loc[0], loc[1], loc[0] + v.getWidth(), loc[1] + v.getHeight());
    }

    @Override
    public Animator onAppear(ViewGroup sceneRoot, final View v, TransitionValues startValues, TransitionValues endValues) {
        if (endValues == null) {
            return null;
        }
        int halfWidth = v.getWidth() / 2;
        int halfHeight = v.getHeight() / …
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop activity-transition shared-element-transition

11
推荐指数
1
解决办法
5033
查看次数

在共享元素活动过渡中动画嵌套视图时出现故障?

我一直在搞乱Android 5.0中的新API,并且一直试图弄清楚是否有可能ViewGroup活动转换期间将a 和它的一个子项分别作为共享元素动画.

下面的屏幕截图给出了我想要实现的简化示例:

First Activity初始职位 第二活动最终职位

在第一个活动中,深灰色框是ViewGroup屏幕中心,红色框是其子框View(我在这里可以找到我使用的布局XML代码).当用户点击深灰色框时,深灰色框应逐渐向上扩展以填充第二个活动的背景.同时,红色框应逐渐缩放并重新定位在第二个活动的左上角.

活动和动画代码

Activity我用来执行转换的代码很简单:

/** FirstActivity.java */
public class FirstActivity extends Activity implements View.OnClickListener {
    private View mOuterBox, mInnerBox;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
        getWindow().setSharedElementExitTransition(new ChangeBounds());
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        mOuterBox = findViewById(R.id.outer_box);
        mInnerBox = findViewById(R.id.inner_box);
        mOuterBox.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Pair<View, String> outerBox = Pair.create(mOuterBox, mOuterBox.getTransitionName());
        Pair<View, String> innerBox = Pair.create(mInnerBox, mInnerBox.getTransitionName());
        Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(this, outerBox, innerBox).toBundle();
        startActivity(new Intent(this, …
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop activity-transition shared-element-transition

10
推荐指数
1
解决办法
4167
查看次数

如何在Activity转换期间使用共享元素快照视图?

我对List<View> sharedElementSnapshots传递给SharedElementCallback's onSharedElementStart()onSharedElementEnd()方法的论点感到困惑.据推测,这些快照视图旨在用作共享元素转换期间的临时占位符.例如,假设活动A显示缩略图图像,活动B显示同一图像的高分辨率版本,需要几秒钟才能加载并显示.快照视图可以暂时用于替代,而不必等待高分辨率图像完成加载.

我很困惑的部分是如何首先使用快照视图.它们应该被添加到活动的视图层次结构中吗?或者也许它们应该被添加到窗口装饰视图中ViewOverlay?无论哪种方式,我看不出它如何可能在这一点上切换过渡共享元素的观点...... onMapSharedElements()被调用之前onSharedElementStart()onSharedElementEnd(),这意味着过渡名字的共享元素最终映射View旨意已经建立.

任何提示将不胜感激.

android android-5.0-lollipop activity-transition shared-element-transition sharedelementcallback

10
推荐指数
0
解决办法
525
查看次数

在Android 5.0中转换ImageView时出现奇怪的问题

我遇到了一个关于ImageViewAndroid 5.0中的活动之间转换的奇怪问题/错误.

我试图从缩略图转换Fragment A(中Activity A)到的头部图像Fragment B(在Activity B).它大部分时间都运行良好,但它有时会轻微混乱.

这是一张它弄乱时的样子:

真是一团糟... :-)

当然,它应该填满整个区域.两个ImageView都设置为ScaleType.CENTER_CROP,所以我无法想象这是问题.

令人好奇的是,该问题在滚动时立即自行修复Activity B(所有内容都包含在子类中ScrollView,ImageView在滚动时更改填充).

启动代码Activity B非常简单:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
    activity, thumbImageView, "cover"); // "cover" is the shared element name for both ImageViews
ActivityCompat.startActivity(activity, intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)

这是可观察的ScrollView侦听器的代码:

scrollview.setOnScrollChangedListener(new OnScrollChangedListener() {
    @Override
    public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
        // Such parallax, much wow
        headerImageView.setPadding(0, (int) …
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop activity-transition shared-element-transition

9
推荐指数
1
解决办法
2849
查看次数

棒棒糖中的活动和片段转换

我正试图围绕新的Activity Transition框架Lollipop.活动过渡工作非常简单,这里有一些基本信息,但是Fragment Transition没有记录,我无法让它工作.我试过这个用例(在Android中很常见):

案例1:ActA + FragA - > ActB + FragB

sharedElement作为一个图像FragAFragB.我没有提出工作代码,所以我退后一步尝试了

案例2:ActA + FragA - > ActB

在和上使用sharedElement.动画不起作用,我只能看到当我点击FragA上的图像时,图像消失,在动画的持续时间后,它会在ActB中弹出.FragA之外的共享视图,但在ActA(例如)内部正确动画.FragAActBToolbar

在这种情况下,sharedImage是RecyclerView中的imageView,可能是android:transitionName="shared_icon"项目布局xml中的xml标签不起作用吗?

这是我的主题:

 <!-- Window Transactions -->
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:fragmentAllowEnterTransitionOverlap">@bool/true_bool</item>
    <item name="android:fragmentAllowReturnTransitionOverlap">@bool/true_bool</item>

    <item name="android:windowEnterTransition">@transition/window_transition.xml</item>
    <item name="android:windowExitTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentEnterTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentReturnTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentReenterTransition">@transition/window_transition.xml</item>

    <!-- Shared Element Transactions -->
    <item name="android:windowSharedElementEnterTransition">@transition/shared_elements_transform.xml</item>
    <item name="android:windowSharedElementExitTransition">@transition/shared_elements_transform.xml</item>

    <item name="android:fragmentSharedElementEnterTransition">@transition/shared_elements_transform.xml</item>
    <item …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-5.0-lollipop activity-transition shared-element-transition

8
推荐指数
1
解决办法
7943
查看次数

如何在Android 5.0上的活动之间转换时排除ActionBar

在Android 5.0 Lollipop上,

我有两个活动A和B.活动B有一个slie从底部进入过渡带有Overlay ActionBar,但是当B显示时,ActionBar也从下到上滑动.

如何阻止动作栏进行幻灯片切换.系统操作栏有一个我可以添加到排除目标的ID吗?

谢谢!

android android-actionbar android-5.0-lollipop activity-transition shared-element-transition

8
推荐指数
2
解决办法
6967
查看次数