8.1 Activity2

2018-07-09  本文已影响0人  jadefly

Activity启动方式

显示启动:

显示启动

隐式启动:

隐式启动

Activity间传值

注:Bundle的大小是有限制的 < 0.5MB

单/多值传递 回传

Activity过场动画

将相关动画文件添加到res/anim目录下

方法1:设置overridePendingTransition

overridePendingTransition

方法2:设置style

设置style

方法3:TransitionManager(api19)或addOnPreDrawListener

方法4:context.startActivity(intent, options);//Bundle options,使用ActivityOptionsCompat.xxx.toBundle动画设置返回bundle


ActivityOptionsCompat(V4兼容类)详解

注:使用需要theme中添加 true

       (这里的兼容是指能保证不崩溃,低版本同样使用不了效果)

1.makeCustomAnimation(Context context, int enterResId, int exitResId)

   设置自定义动画,传(入场动画资源,退场动画资源)

2.makeScaleUpAnimation(View source, int startX, int startY, int startWidth, int startHeight)

   source:放大View

   startX,startY:以View为基点的偏移(eg:view.getWidth() /2, view.getHeight() /2 即View的中心)

   startWidth,startHeight:新的activity从多大开始放大(eg:0,0 即从无到有)

3.makeThumbnailScaleUpAnimation(View source, Bitmap thumbnail, int startX, int startY)

   thumbnail:要放大的图片

   startX,startY:从哪开始动画

4.makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName)

    两个activity中两个view进行协作的场景动画(5.0以上才支持)

    sharedElement:执行动画的view

    sharedElementName:定义的标记,另一个view需要同样设置这个标记(如果是xml设置:android:transitionName=“@String/xxx”)

5.makeSceneTransitionAnimation(Activity activity, Pair... sharedElements)

   同4,但是可以多个view进行协作动画,通过Pair对象封装

   Pair imagePair = Pair.create(mImageView, getString(R.string.image));

   Pair textPair = Pair.create(mTextView, getString(R.string.name));

上一篇下一篇

猜你喜欢

热点阅读