【问题标题】:Point of origin animation android原点动画android
【发布时间】:2015-06-09 17:49:23
【问题描述】:

我目前正在根据材料规格设计制作动画,现在我想启用此处显示的原点动画:

Sample Animation Link

如何制作棒棒糖前的动画?有没有办法在棒棒糖之前的设备中做到这一点?

【问题讨论】:

  • 您是否尝试过将轴 x (0) 和轴 y (viewHeight) 移动到该点,然后使用适当的插值器(如 Overshoot)应用缩放动画?你想过动画视图 RectF 吗?
  • @NikolaDespotoski 我打算在片段中进行,我已经在视图上尝试了常规比例动画,但它总是从左上角开始到右下角。
  • 如果你用 setPivotX 和 setPivotY 改变轴 x 和 y 会有不同的行为。
  • 你必须改变它然后做你想做的事。例如,作为动画原点的点实际上是远离图像原点的y-x。考虑到这一点。 编辑: 这可能并不完全正确;可能只是 x-s 相同,但你明白了。

标签: java android material-design


【解决方案1】:

我已经实现了这一点,创建了一个基于 XML 的方法并将其应用于您的自定义主题。

创建anim/anim_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="0.0"
        android:toXScale="1.0"
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:fillAfter="false"
        android:startOffset="200"
        android:duration="200"
        android:pivotX = "100%"
        android:pivotY = "100%"
        />
    <translate
        android:fromYDelta="50%"
        android:toYDelta="0"
        android:startOffset="200"
        android:duration="200"
        />
</set>

然后创建 anim/anim_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="0.0"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:fillAfter="false"
        android:duration="200"
        android:pivotX = "100%"
        android:pivotY = "100%"
        />
    <translate
        android:fromYDelta="0"
        android:toYDelta="50%"
        android:duration="200"
        />
</set>

此动画源从屏幕右下角弹出一个窗口或对话框片段。修改pivotXpivotY改变原点位置

在你的style.xml中定义这个窗口动画

<style name="InOut.Window" parent="@android:style/Animation.Activity">
        <item name="android:windowEnterAnimation">@anim/anim_in</item>
        <item name="android:windowExitAnimation">@anim/anim_out</item>
    </style>

最后将此动画应用于您将创建的自定义主题的所有窗口。

<style ....>
...
<item name="android:windowAnimationStyle">@style/InOut.Window</item>
</style>

【讨论】:

  • 但是点击后按钮下方绘制的圆形呢?
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 2018-08-07
  • 2023-02-14
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多