如何创建动画从图像的中心开始

时间:2012-09-24 10:04:07

标签: android animation

我有一个自定义对话框类,用于在触摸时弹出图像。对话框显示在屏幕中央。我正在设置弹出窗口并按下该对话框的动画。

popup_show.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="250"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

popup_hide.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="250"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.0"
    android:toYScale="0.0" />

这些动画效果很好。通过使用这些动画,对话框会弹出屏幕中心。

但是我想让这个对话框从图像中心弹出并显示在屏幕中央。否则如何从图像中心开始对话并显示在屏幕中央? 怎么可能?

谢谢,

3 个答案:

答案 0 :(得分:1)

我认为这个mi8有帮助:

<scale                
android:toXScale="1.0"              
android:fromXScale="0.0"            

android:toYScale="1.0"
android:fromYScale="0.0"

android:pivotX="0%"
android:pivotY="0%"

android:startOffset="100"
android:duration="1000">
</scale>

答案 1 :(得分:0)

似乎可以使用resourcescode

你唯一需要的是在动画开始之前进行计算 - 图像的中心(像View.getLocationOnScreen()View.getLocationInWindow()一样调用smth。)

答案 2 :(得分:0)

使用此风格

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="250"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:pivotX="50%"
    android:pivotY="0"
    android:toXScale="1.0"
    android:toYScale="1.0" />