900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > activity 转场动画不生效_Activity的转场动画

activity 转场动画不生效_Activity的转场动画

时间:2018-08-02 20:49:33

相关推荐

activity 转场动画不生效_Activity的转场动画

2. V4包中的ActivityOptionsCompat和 ActivityCompat

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

热修复的

我很喜欢

IOS好的体验我们会返回提友好的交互,是的,用完一次后都觉得它很炫酷,尤其是各种转场动画,其实Android在5.0+上也有很好的交互,若是我们把这些交互用在开发中,你的APP也会有一个很好的用户体验。

Android Design规范中也给出了有意义的转场,使得不同页面之间切换更加平滑、更加流程。就像它自己解释道: 谨慎编排的动画可以在有多步操作的过程中有效地引导用户的注意力;在版面变化或元素重组时避免造成困惑;提高用户体验的整体美感。动画设计不仅应当优美,更应当服务于功能。

所以今天我们就来一步步来介绍Aciticity转场动画的使用。

传统的转场方式

对于Android2.0后加入的对Activity的转场动画 overridePendingTransition(enterAnim, exitAnim) ,能满足我们的一些页面

这种实现是针对整个Activity的页面转场使用,如sliding_from_right、sliding_to_left这些动画。

—— sliding_from_right ——

—— sliding_to_left —–

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:duration="@android:integer/config_longAnimTime"

android:fromXDelta="0"

android:toXDelta="-100%p"/>

要是你真的不了解可以参考 Activity切换效果(overridePendingTransition) 理解下 overridePendingTransition(enterAnim, exitAnim) 。

V4包中的ActivityOptionsCompat和 ActivityCompat

ActivityOptionsCompat 是v4包下的一个适配类,它的很多静态方法都是返回 ActivityOptions ,通过这些

如图是我们通过android Studio的类的

我们就将这些常用的静态方法给列出,这些静态方法像工具类一样可以让我们很方便实用。

makeCustomAnimation(Context context, int enterResId, int exitResId)

makeScaleUpAnimation(View source,int s

makeClipRevealAnimation(View source, int startX, int startY, int width, int height)

makeThumbnailScaleUpAnimation(View source, Bit

makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName)

makeSceneTransitionAnimation(Activity activity, Pair

… sharedElements)

makeCustomAnimation(Context context, int enterResId, int exitResId)

Create an ActivityOptions specifying a custom animation to run when the activity is displayed.

这个其实和 overridePendingTransition(enterAnim, exitAnim) 有点类似,传入一个页面进入的动画和页面退出的动画,不过这个实用起来可能相对会麻烦点。

假设我们从Activity A–>Activity B,而后再返回Activity A.

视频 。

具体实现:

———— ActivityA ————

@Override

publicvoidonClick(View v){

ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.sliding_from_right,R.anim.sliding_to_left);

ActivityCompat.startActivity(this,newIntent(this,ActivityB.class),optionsCompat.toBundle());

}

———— ActivityA ————

@Override

publicvoidonClick(View v){

//在finish前执行动画,然后再调用finish

ActivityCompat.finishAfterTransition(this);

}

–待续–

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。