Android中的缩放动画(Zoom In和Zoom Out)

26

我有一段通常的两个活动之间缩放动画的代码,但我想要不同的效果。在第一个活动中,我有五个按钮,如果我点击第一个按钮,则缩放应该从第一个按钮的位置开始而不是从中心缩放。请帮帮我。

编辑:缩放应该从我点击的按钮开始作为中心。


你的问题不是非常清楚,你是想从布局的中心缩放呢还是你的动画没有正常工作? - kabuto178
我有五个按钮,当我点击任何一个按钮时,它会展开并启动下一个活动。 - jagdish
你不想启动一个新的活动吗? - kabuto178
我也想启动新的活动。但是动画效果应该像是展开的样子。 - jagdish
3个回答

41

在启动新活动的命令后,您可以使用此方法。

startActivity(intent);
overridePendingTransition(animation_in_goes_here,animation_out_goes_here);

然后,您可以替换上面的动画,将animation_in_goes_here替换为您需要的新启动活动的动画资源,并将animation_out_goes_here替换为您离开的活动的动画资源。这将为您提供切换效果。

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="3"
    android:toYScale="3"/>
 </set>

缩小.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.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.5"
    android:toYScale="0.5"/>
</set>

希望这能帮助解答您的问题。


谢谢...但动画不太合适 :( - jagdish
有什么问题需要解决吗? - kabuto178
这个动画不太合适。我离开的活动没有任何过渡效果。我要切换到的活动首先会缩放,然后再切换回正常状态。我离开的活动没有任何变化。我是否失去了某些依赖关系?目前有8个赞,所以在某种情况下应该是正确的答案。 - Shubham A.
如何将两种效果合并为一个? - Black mamba

3

放大

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

</scale>

Zoom Out

<scale xmlns:android="http://schemas.android.com/apk/res/android"

    android:duration="1000"
    android:fromXScale="2.1"
    android:fromYScale="2.1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:startOffset="3000"
    android:toXScale="0"
    android:toYScale="0">

</scale>


创建zoom.xml文件,用于缩小和放大。 - Bhoomika Prajapati
2
如何将两种效果合并为一个? - Black mamba

2
我认为您需要按照以下步骤进行操作:
  • 设置“in”和“out”动画
  • 创建文件夹res/anim
  • 将动画描述放入res/anim文件夹中

    object.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.zoom_enter)); object.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.zoom_exit));

您可以使用由Google提供的Android SDK示例动画,这些动画遵循Apache 2.0许可证。
或者参考此链接,该链接使用基于缩放的缩放,比前者更容易理解:

http://developer.android.com/training/animation/zoom.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接