如何从屏幕上的某个位置启动活动,例如在主屏幕或最近的应用中?

时间:2013-10-02 07:32:15

标签: android animation

我想从对话框到我的完整活动创建一个“最大化”效果,所以我希望开场动画显示从一个框扩展到完整大小的活动。

由于Jelly Bean(按下应用程序快捷方式将从该图标的位置放大应用程序,并且“应用程序”菜单已从ICS开始执行此操作,因此库存启动程序已完成此操作。

2 个答案:

答案 0 :(得分:2)

想出来了!

Bundle options = ActivityOptionsCompat.makeScaleUpAnimation(
    findViewById(android.R.id.content),
    findViewById(android.R.id.content).getLeft(),
    findViewById(android.R.id.content).getTop(),
    findViewById(android.R.id.content).getWidth(),
    findViewById(android.R.id.content).getHeight()).toBundle();
    startActivity(intent, options);

它仅适用于API 16及更高版本,因此请检查它并使用旧版startActivity旧版本。

答案 1 :(得分:0)

从左下角最大化将是这样的。

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="2000">

    <scale
        android:fromXScale="0"
        android:toXScale="1"
        android:fromYScale="0"
        android:toYScale="1"
        android:pivotX="0%"
        android:pivotY="100%"/>

    <translate android:fromYDelta="100%p"
               android:toYDelta="0%p"/>
</set>