Android转场动画,Avtivity转场动画;

转场动画 - 共享元素动画

先看效果:


Activity1点击小图标开启Activity2;

开启Activity2效果就像是小图标放大了填充上去的,关闭Activity2回到Activity1时又像是图片缩小放回去的;

不废话了上代码:

在startActivity方法中加入这段代码;记住 TRANSITIONIMAGE 这个标记

ActivityOptions.makeSceneTransitionAnimation((Activity) mContext,view,"TRANSITIONIMAGE").toBundle()

.setOnClickListener(R.id.icon, new View.OnClickListener() {
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onClick(View view) {
        mContext.startActivity(new Intent(mContext, ShopHomeActivity.class)
                , ActivityOptions.makeSceneTransitionAnimation((Activity) mContext,view,"TRANSITIONIMAGE").toBundle());
    }
});

Avtivity1中点击的ImageView控件:

添加这个属性:android:transitionName="TRANSITIONIMAGE"

<ImageView
    android:id="@+id/icon"
    android:layout_width="38dp"
    android:layout_height="38dp"
    android:src="@mipmap/emptyimage"
    android:scaleType="centerCrop"
    android:transitionName="TRANSITIONIMAGE"
    />

Avtivity2中显示的控件也添加这个属性:  android:transitionName="TRANSITIONIMAGE"

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:orientation="vertical"
    android:background="@mipmap/shopbg"
    android:transitionName="TRANSITIONIMAGE"
    >
</RelativeLayout>

这样就会有动画效果了,注意有背景色的是同一个值;

这个叫共享元素动画,在使用这个动画的时候,我们需要给Activity1和Activity2中的两个控件分别添加android:transitionName="TRANSITIONIMAGE"属性,并且该属性的值要相同,这样系统才知道是共享元素动画;然后再开启Activity时添加 

ActivityOptions.makeSceneTransitionAnimation((Activity) mContext,view,"TAG").toBundle()

这个动画项目中用到了,后续再写其它的转场动画;

取消默认转场动画:

传送门:http://blog.csdn.net/qq_35605213/article/details/79569218

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值