Articles of 活动转换

活动中的打嗝与共享元素转换

我想要使​​用Android棒棒糖的新活动转换。 但是目前我在animation中看到很奇怪的混乱。 我把我能想到的最小样本一起砍了。 这是我在一个非常短的版本中做的: 在我的styles.xml启用了窗口内容转换 在我的风格中引用了一个非常简单的slide.xml作为退出转换 为这两个布局中的共享元素提供了android:transitionName 调用ActivityOptions.makeSceneTransitionAnimation()与该名称和我想要共享的视图 将生成的包传递给startActivity() 这是我看到的行为(尝试慢10倍的animation速度,以查看我的意思):就在幻灯片animation向下滑动不共享的视图之前,这些视图会稍微跳下来。 他们实际上有点分开。 但是:这只发生在我第二次运行该animation(以后每次)。 第一关看起来很好。 而且这也只会发生,如果我想与下一个活动共享一个元素。 一切工作正常,如果我不试图分享一个元素。 这是我的代码: 价值观/ styles.xml <resources> <style name="AppTheme" parent="android:Theme.Material.Light"> <!– enable window content transitions –> <item name="android:windowContentTransitions">true</item> <!– specify exit transition –> <item name="android:windowExitTransition">@transition/slide</item> </style> </resources> 过渡/ slide.xml <slide /> 主要活动的布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:layout_width="match_parent" android:layout_height="0dp" […]

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

我对传递给SharedElementCallback的onSharedElementStart()和onSharedElementEnd()方法的List<View> sharedElementSnapshots参数感到困惑。 据推测,这些快照视图旨在在共享元素转换期间用作临时占位符。 例如,假设活动A显示缩略图,活动B显示同一图像的高分辨率版本,加载和显示需要几秒钟。 而不必等待高分辨率图像完成加载,快照视图可以临时替代使用。 我弄糊涂的部分是快照视图是如何被使用的。 他们是否应该被添加到活动的视图层次? 或者,也许他们意味着被添加到窗口装饰视图的ViewOverlay ? 无论哪种方式,我没有看到在这一点上切换转换共享元素视图是怎么可能的…在onSharedElementStart()和onSharedElementEnd()之前onSharedElementStart() onSharedElementEnd() ,这意味着将转换名称映射到共享元素View s已经build立起来了。 任何提示将不胜感激。

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

我试图围绕在Lollipop新的Activity Transition框架。 活动转换工作非常直接,这里有一些基本的信息 ,但Fragment Transition没有logging,我不能得到它的工作。 我试过这个用例(在Android中很常见): 情况1:ActA + FragA→ActB + FragB sharedElement是FragA和FragB一个映像 。 我没有拿出工作代码,所以我退后一步,试了一下 情况2:ActA + FragA→ActB 与FragA和ActB上的FragA ActB 。 这个animation是行不通的,我只能看到,当我点击FragA上的图片时,图片消失,在animation的持续时间后,它在ActB中popup。 在FragA之外但在ActA之内共享视图(例如Toolbar )正确animation。 在这种情况下,sharedImage是一个RecyclerView中的imageView,可能是项目的布局xml中的xml标签android:transitionName="shared_icon"不起作用? 这是我的主题: <!– 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 […]

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

我正在遇到一个奇怪的问题/错误关于Android 5.0中的活动之间的ImageView转换。 我试图从Fragment A (在Activity A )的缩略图图像转换到Fragment B (在Activity B )的标题图像。 它大部分时间运作良好,但有时候会有点微弱的变化。 这是一个当它搞乱时的样子: 当然,它应该填补整个地区。 这两个ImageViews设置为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()); 以下是可观察的ScrollView侦听器的代码: scrollview.setOnScrollChangedListener(new OnScrollChangedListener() { @Override public void onScrollChanged(ScrollView who, int l, int t, int […]

自定义循环显示过渡结果在“java.lang.UnsupportedOperationException”暂停?

我创build了一个自定义的圆形显示转换,作为一个Activity的input转换的一部分(具体来说,我通过调用Window#setEnterTransition()设置转换为窗口的input转换): 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 […]

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

我正在对Android L中的共享元素转换进行一些基本的探索。我已经设置了一个简单的例子,在活动转换期间,图像视图从屏幕的顶部转换到了屏幕的底部,并且我已经延长了转换持续时间所以我可以看到事情的工作。 到目前为止,我已经遇到了两个问题,试图了解共享元素转换的工作原理。 1)仅使用input/返回转换(退出/重新input设置为空)。 input转换是好的,但是当后退button被按下时,视图animation一次,停止,然后重新出现在最后的位置。 似乎这个问题,但我已经设置所有存在/重新转换为空,所以不知道为什么会发生。 2)仅使用退出/重新input转换(input/返回设置为空)。 没有任何事情发生,视图按照默认的input转换(持续时间300毫秒)在屏幕上向下转换,当按下后退时,视图popup回到原来的位置。 我如何使用退出/重新input转换? 这是我的代码: 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> 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" /> MainActivity.java public class MainActivity extends Activity { @Override […]

在ChangeImageTransform中使用共享元素转换在两个活动之间对ImageView进行animation处理

我试图将一个ImageView设置为Android API级别21中两个活动之间的另一个位置。由于Android L预览版中的“MoveImage”已被删除,我使用“ ChangeImageTransform ”代替,但文档中的示例代码无法运行两个图像单独animation)。 <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> 有没有工作的例子? 谢谢!

如何使用共享元素转换来缩放textviews?

我能够通过使用ActivityOptions.makeSceneTransitionAnimation使TextViews在两个活动之间完美转换。 不过,我希望在文本过渡时扩大文本的大小。 我可以看到在接触卡转换中放大文本“Alphonso Engelking”的材料devise示例 。 我已经尝试在目标TextView上设置比例属性,并使用changeTransform共享元素转换,但不会缩放,文本在转换时会截断。 如何使用共享元素转换缩放TextViews?

如何推迟在Android棒棒糖的片段的input转换?

在Android Lollipop中, Activity#postponeEnterTransition()和Activity#startPostponedEnterTransition()方法为Activity提供了延迟启动进入和退出共享元素转换的能力,直到加载所有数据。 这些工作很适合Activity转换。 使用Fragment过渡时,有没有办法达到同样的效果?

ViewPager片段 – 共享元素转换

我正在开发的应用程序显示图像的网格。 当你点击一个图像,它进入细节视图。 详细信息视图包含一个ViewPager,允许您在网格中的每个图像之间滑动。 这是通过传递path列表(包含网格中的每个图像),以及点击图像的偏移量,以便ViewPager可以设置为初始显示该页面来完成的。 在ViewPager的当前偏移量页面的片段内部有一个共享元素转换的最佳方式是什么? 网格(RecyclerView)图像应展开为当前页面中的全屏图像。 我看到了推迟和恢复活动转换的能力,所以应用程序将等待显示共享元素转换,直到从磁盘加载图像。 但是我希望能够使视图寻呼机中正确的页面变成animation,并且在用户返回时(因为您可以在页面之间滑动)而退出到当前页面。 如果你现在刷到不同的页面,最初的页面是什么animation回到网格。 目前,我使用格式为“image_ [index]”的transitionName为视图分页器的片段中的每个图像分配一个。 当我开始细节活动时,我使用相同的transitionName,索引是偏移量。 与此相关,我也想知道如何使长时间的按下涟漪。 当您更改视图的激活状态时,似乎取消了波纹。 我想要一个类似于Gmail的效果,纹波重新开始,并在长按完成后快速结束并触发激活状态。