我的屏幕右上角(或任何地方)有一个视图。我想将此视图设置为某个位置的动画。此位置由另一个xml-layout定义。如何在其他布局中确定视图的坐标,以便将其设置为此位置的动画?
背景:我们假设视图显示位于右上角的计算器。当用户点击此计算器 - 视图时,它应该被动画到更现在的位置。在此动画之后,当前片段被CalculatorFragment替换,其中包含完全相同的View(和其他Views)以及计算器逻辑。目标是将计算器设置为CalculatorFragment的xml-layout定义的确切位置。通过这种方式,可以创建一个无缝的" FragmentTransition。
提出这个问题的另一种方式可能是"如何在不在屏幕上显示的情况下找出视图的位置?"
迄今为止最有希望的方法是这个(但我只能将零作为坐标):
View fragmentView = getActivity().getLayoutInflater().inflate(R.layout.fragment_calculator, null);
View calc = fragmentView.findViewById(R.id.includeCalculator);
int[] coords = new int[2];
calc.getLocationInWindow(coords);
pictureframe.setAnimateToX(coords[0]);
pictureframe.setAnimateToY(coords[1]);
Log.v(TAG, "X: " + coords[0] + " Y: " + coords[1]);
谢谢!
答案 0 :(得分:0)
您可以将其写入res文件夹的anim文件夹内的xml文件中,而不是将其他XML文件写入位置,以便为视图设置动画。
您可以使用 -
加载动画android.view.animation.Animation animation = AnimationUtils.loadAnimatio
(getApplicationContext(),R.anim.translate);
translate.xml:
android:fromXDelta="50%p"
android:fromYDelta="100%p"
android:toXDelta="0%p"
android:toYDelta="0%p"
android:duration="10"
android:fillAfter="true" />
</set>
您可以根据需要调整X和y位置。