Activity启动方式
显示启动:
隐式启动:
Activity间传值
注:Bundle的大小是有限制的 < 0.5MB
Activity过场动画
将相关动画文件添加到res/anim目录下
方法1:设置overridePendingTransition
方法2:设置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));