Articles of android transitions

方向改变后,转换闪烁

UPDATE 我开通了Google https://issuetracker.google.com/issues/63663775的错误 我正在尝试在我当前的Android应用程序中使用makeSceneTransitionAnimation 。 我有一个源Activity ,包含一个Fragment ,在片段内是一个RecyclerView 。 当我点击RecyclerView一个图像时,我转换到了我的目标Activity ,该目标Activity包含一个片段,该片段使用可接受的animation正确显示图像。 按下后退button可正确反转animation。 上述工作正常人像和风景方向。 当查看目标碎片时改变方向,然后按下后退button,就会发生闪烁问题。 还有其他一些问题,如图像不能直接返回到原来的位置,而在较旧的设备上,我会看到横向的线条,就像来自调谐不良的模拟电视的干扰。 它的BLINKING非常糟糕,设备屏幕全黑约500ms。 我已经下载并部署了谷歌示例共享元素转换应用程序,它似乎有相同的“function”。 我已经尝试了多种解决scheme,而且没有一个能够像这样工作 。 这是展示这个问题的一个方面。 LOGCAT增加 07-21 12:57:18.097 1962-1967/com.incentive.yellowpages I/zygote64: Do partial code cache collection, code=30KB, data=21KB 07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: After code cache collection, code=30KB, data=23KB 07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: Increasing code cache capacity to 128KB 07-21 12:57:20.540 1962-2058/com.incentive.yellowpages […]

共享元素转换成RecyclerView中的视图,可能吗?

鉴于具有共享元素的Activity的正常棒棒糖转换,例如https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition ,通常是从View到Recycler View转换到一个目标活动的正常视图。 然而,如果有针对性的观点,也是在一个回收视图viewholder,有没有办法使这种可能(即提供有针对性的观点ActivityOptionsCompat)? 谢谢!

TextInputLayout共享元素转换问题

这里我们去:两个共享元素转换的活动(Button)。 第二个Activity有一个带有提示的TextInputLayout : <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_horizontal" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:transitionName="test"/> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="WTF?!"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout> </LinearLayout> 第二个Activity的input转换被延迟以澄清问题: TextInputLayout的提示忽略转换animation并在转换开始后立即显示。 在animation结束时,您可以在提示下方看到正确的animationEditText背景(水平线)。 这是一个错误还是我错过了什么? 这是第二个Activity : public class SecondActivity extends AppCompatActivity { public static void launch(Activity activity, View sharedElement) { Intent intent = new Intent(activity, SecondActivity.class); ActivityOptionsCompat options = […]

另一个活动出现,覆盖了一半的屏幕大小

我有一个button,点击打开另一个活动,从下面出现,覆盖了一半的屏幕。 我search了它,但没有得到任何有用的方法,除了overridePendingTransition函数,这是有用的获取animation的活动过渡,但这并没有解决我的问题。 我知道这是在谷歌环聊完成,如图中所示,但找不到任何有用的解决scheme。 当我们按下button时,这个活动出现并覆盖了屏幕大小的一半 当我们向上滚动活动成为我们的主要活动 任何想法如何做到这一点? 谢谢

如何在活动之间的转换完成时得到通知?

就像标题说的那样… 我正在使用活动之间的转换,我希望为这两种活动提供某种types的监听器(或事件),以便在转换完成时以及在启动之前。 以下是创build转换的示例代码: final Intent intent = new Intent(activity, TargetActivity.class); if (initialQuery != null) intent.putExtra(EXTRA_INITIAL_QUERY, initialQuery); final String transitionName = activity.getString(R.string.transition_name); ViewCompat.setTransitionName(viewToTransitionFromAndTo, transitionName); final ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, viewToTransitionFromAndTo, transitionName); ActivityCompat.startActivityForResult(activity, intent, requestCode, options.toBundle());

将列表项目转换为Google Inbox等细节

我希望ListView项目展开成显示项目详细信息的Fragment / Activity 。 以下是一个显示animation的示例 – https://dl.dropboxusercontent.com/u/75404011/inbox-animation.mp4 我像RecyclerView项目打开animation看着谷歌收件箱,但无法感知的本质。 任何人都可以给我一些这方面的指针?

如何知道一个活动是否在没有转换的情况下开始?

我有一个使用案例,我主要是通过一个转换来开始一个活动,但是从导航抽屉中打开时并不是这种情况。 为了保持转换的顺利,我有一个Transition.TransitionListener ,在转换完成时触发一些UI更新。 所以我有这样的东西: public class SomeActivity extends Activity { public void onCreate(Bundle savedInstanceState){ // … if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { // … @Override public void onTransitionEnd(Transition transition) { doSomeUiUpdating(); } }); } else { // Pre-Lollipop doSomeUiUpdating(); } } } 这在使用animation启动Activity时效果很好,但是如何知道Activity是否在没有转换的情况下启动,以便我可以调用doSomeUiUpdating() ? 我确定在Activity , Window , Transition或者我忽略的某个地方必须有一个简单的方法。 […]

共享元素转换:embedded到另一个活动中的片段中的活动

我正在尝试添加共享元素转换到我的应用程序。 情景是,用户点击图像缩略图,而不是用全屏图像查看打开另一个活动。 如果共享视图直接托pipe在目标活动的布局中,这可以正常工作。 顺利进入/退出animation。 但是当我试图在嵌套在目标活动中的片段中实现类似的效果时,这种方法不起作用 。 有趣的是,inputanimation没有显示,但退出animation工作正常。 另一个更复杂的视图层次结构是,如果目标视图(ImageView)被托pipe在目标活动的框架布局中的视图寻呼机内。 有人有同样的问题吗? 编辑:我的点击侦听器代码 public class OnClickPicture extends OnClickBase { private ObjectPicture object; public OnClickPicture(Activity_Parent activity, ObjectPicture object) { super(activity); this.object = object; } public void onClick(View v) { picasso.load(object.getFullUrl()).fetch(); Intent intent = new Intent(activity, ActivityPicture.class); intent.putExtra("picture_object", helper.gson.toJson(object)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && v != null) { Pair<View, String> […]

replace碎片具有错误的高程值

你好,再次堆栈溢出。 我有另一个片段问题。 (我使用android.app.Fragment不支持碎片) 我试图replace一个片段。 但是这不像使用那样简单: fragmentTransaction .replace(containerId, newFragment) .addToBackStack("unique tag") .commit() 为什么不? 好的问题朋友,因为我的newFragment有一个过渡animation。 animation在哪里定义? 另一个很好的问题,它定义在片段onCreateAnimator() 为什么在那里定义? 为什么可以find一个长的答案: 嵌套片段转换不正确 。 现在你需要相信这是我的项目需要完成的事情。 什么是animation在做什么? 从屏幕边缘到其中心的简单滚动,完全覆盖原始片段。 请记住,在这种情况下,旧的片段只是坐在原地。 它有一个不动的animation效果。 问题是什么? 问题是newFragment的高程(或z?)值比旧的高。 所以过渡是不能被观察到的,因为旧的片段位于新的片段之上。 在到达animation持续时间结束时,您会看到新的片段在旧的片段之上闪烁。 我希望这个新片段能够在animation开始的时候覆盖旧片断。 为什么不使用添加? 这似乎造成了更多的问题,因为我有很多我想要交换和切换的片段。 使用add似乎会在下一次使用replace时触发它们的退出animation,即使它前面有1 … n个碎片。 他们也不会停下来。 为什么不设置高程? 因为我支持没有海拔属性的api 19。 为什么不使用ViewCompat.setElevation()为api 19? 我尝试过,并有相同的失败的结果。 有没有人find解决这个问题的方法?

与英雄元素的场景转换抛出层超过最大值。 GPU支持的尺寸

我正在尝试在Android 5.0中将ListView中的图像转换为详细信息页面。 但是,大约有50%的Android图像崩溃,下面的例外。 我的图片是600×400,但我试图将其更改为200×100,但得到了相同的错误。 当它的工作,它看起来不错,但我看不出各种图像之间的差异。 真的不确定为什么它声称图层太大,有人有线索? private void handleNewsItemClicked(AdapterView<?> arg0, View viewClicked, int arg2) { TopNewsItem item = ((TopNewsItem)arg0.getAdapter().getItem(arg2)); Intent intent = new Intent(getActivity(), TopNewsDetailsActivity.class); intent.putExtra(TopNewsDetailsActivity.ARGS_ID, item.getGuid().getId()); intent.putExtra(TopNewsDetailsActivity.ARGS_IMAGE, imageUrl); if(Build.VERSION.SDK_INT >= 21) { ActivityOptions options = ActivityOptions .makeSceneTransitionAnimation(this.getActivity(), viewClicked.findViewById(R.id.image), "article_image"); this.getActivity().startActivity(intent, options.toBundle()); }else getActivity().startActivity(intent); } } W/OpenGLRenderer(18137): Layer exceeds max. dimensions supported by the GPU […]