如何根据视图在屏幕上的位置 android 缩放动画并将该视图聚焦在中心?
How to do android scale animation based on view's position on screen and focus that view in centre?
我想要这样的动画:Calendar Animation
我想在日历上缩放动画并以当前日期为中心。
我是 android 动画的新手,我做了一些缩放工作:
zoom_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<scale
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="2"
android:toYScale="2" />
</set>
但是使用它,它将日历缩放到中心,但我希望当前日期居中。
有人知道如何制作整个动画吗?任何帮助将不胜感激。
你需要得到你想要居中的 view/content 的位置,因为你需要做一些翻译
此处示例缩放到 TextView 的中心,在 ConstraintView 中具有随机位置
放大到需要平移视图的特定位置,使点在中心,可以通过更改 difX 和 difY 公式来实现
float layoutWitdh = layout.getWidth();
float layoutHeight = layout.getHeight();
float x = view.getX();
float y = view.getY();
float w = view.getWidth();
float h = view.getHeight();
float difX = (layoutWitdh - w) / 2 - x;
float difY = (layoutHeight - h) / 2 - y;
view.animate().translationX(difX).translationY(difY).scaleY(5).scaleX(5).setDuration(1000);
编辑:
检查这个项目https://github.com/aiwiguna/AndroidZoom
我想要这样的动画:Calendar Animation
我想在日历上缩放动画并以当前日期为中心。 我是 android 动画的新手,我做了一些缩放工作:
zoom_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<scale
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="2"
android:toYScale="2" />
</set>
但是使用它,它将日历缩放到中心,但我希望当前日期居中。 有人知道如何制作整个动画吗?任何帮助将不胜感激。
你需要得到你想要居中的 view/content 的位置,因为你需要做一些翻译
此处示例缩放到 TextView 的中心,在 ConstraintView 中具有随机位置
放大到需要平移视图的特定位置,使点在中心,可以通过更改 difX 和 difY 公式来实现
float layoutWitdh = layout.getWidth();
float layoutHeight = layout.getHeight();
float x = view.getX();
float y = view.getY();
float w = view.getWidth();
float h = view.getHeight();
float difX = (layoutWitdh - w) / 2 - x;
float difY = (layoutHeight - h) / 2 - y;
view.animate().translationX(difX).translationY(difY).scaleY(5).scaleX(5).setDuration(1000);
编辑:
检查这个项目https://github.com/aiwiguna/AndroidZoom