Activity转场动画(透明Activity)

原创 2015年11月18日 23:06:53

公司的应用开发已经进入了优化阶段,这时就想给每一个打开的activity增加一个手势返回,当手指向右滑动时候,activity会跟着手指滑动,直至销毁(仿微信)。

想做成滑动返回的效果,当前的activity除了监听手势之外,自身的背景一定要是透明的!并且为了配合右滑返回的效果,activity进场的动画也不能采用默认的动画,应该让activity从屏幕的右侧飘进来~~activity销毁的时候向右侧飘去~~~


滑动中透明的Activity效果如上图所示:

首相在styles.xml中自定义一个转场的样式:

<style name="AnimationActivity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/slidein_from_right</item>
        <item name="android:activityOpenExitAnimation">@anim/xxxx</item>
        <item name="android:activityCloseExitAnimation">@anim/slideout_to_right</item>
        <item name="android:activityCloseEnterAnimation">@anim/xxxxx</item>
</style>
activityOpenEnterAnimation:A打开B,B进入时候的动画

activityOpenExitAnimation:A打开B,A消失时候的动画

activityCloseExitAnimation:B退出到A,B退出时候的动画

activityCloseEnterAnimation:B退出到A,A进入时候的动画


再将上面的样式关联到activity需要设置的样式上:

<style name="AppThemeLightTranslucent" parent="Theme.AppCompat.Light.DarkActionBar">
	<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
	<item name="android:windowIsTranslucent">true</item>
	<item name="android:windowBackground">@android:color/transparent</item>
</style>
windowIsTranslucent和windowBackground就是将activity设置为透明


最后在manifest中将需要用到滑动返回的activity设置为我们自定义的样式:

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:theme="@style/AppThemeLightTranslucent"
    />

通过上述的代码,我们的activity就会带有转场动画以及透明的背景啦吐舌头

最后再附上转场动画的set文件:

slidein_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="80%p" android:toXDelta="0"
        android:duration="@android:integer/config_mediumAnimTime"/>
    <!--<alpha android:fromAlpha="0.0" android:toAlpha="1.0"-->
        <!--android:duration="@android:integer/config_mediumAnimTime" />-->
</set>
slideout_to_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="80%p"
        android:duration="@android:integer/config_mediumAnimTime"/>
    <!--<alpha android:fromAlpha="1.0" android:toAlpha="0.0"-->
        <!--android:duration="@android:integer/config_mediumAnimTime" />-->
</set>

滑动返回我是参考的github一个库SwipeBackActivity,源代码是监听了全屏的滑动返回事件,我把他改成了只有左边缘才会触发侧滑返回事件,我觉得这样的话,更加适合项目。

差不多该结束了,若有问题请留言,或者加我QQ:394114161




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android view 滑动事件冲突解决方法(理论篇)

1.外部拦截法: 通过父容器拦截处理,如果父容器需要就拦截,如果父容器不需要就不拦截交给子view;主要是修改父容器的 onInterceptTouchEvent 方法,伪代码如下:@Ov...

解决view 滑动事件冲突(实战篇-内部拦截法)

说明:本文用的方法是(内部拦截法)首先说下一个普遍的需求: 这个需求很普遍;像今日头条,网易新闻什么的都是这样 1:底部有四个按钮点击可以切换;左右滑可以切换(不用想用viewpager) 2:...

Android转场动画-Activity_Transition

  • 2015年07月29日 17:47
  • 2.44MB
  • 下载

Android5.0之Activity的转场动画

Activity的转场动画很早就有,但是太过于单调,样式也不好看,于是Google在Android5.0之后,又推出的新的转场动画,效果还是非常炫的,今天我们一起来看一下。1.旧转场动画回顾首先我们还...

Activity之间转场动画

两个Activity之间切换不做处理效果: 加上左右切换后的动画效果: 实现原理: 1、overridePendingTransition(enterAnim 进入时的动画, exitAnim ...

activity和fragment的转场动画的实现

最近工作中遇到了大量activity动画的切换场景,在网上找了些资源终于实现了,写一篇简单的blog记录一下 activity转场动画大家都很熟悉一般情况我们会用overridePendingTran...
  • cjj821
  • cjj821
  • 2017年06月18日 22:26
  • 123

Android5.0之Activity的转场动画

Activity的转场动画很早就有,但是太过于单调,样式也不好看,于是Google在Android5.0之后,又推出的新的转场动画,效果还是非常炫的,今天我们一起来看一下。 1.旧转场动画回顾 首...

Android基础:Activity转场动画:overridePendingTransition(...)

1 AlphaAnimation:渐变动画 AlphaAnimation animation = new AlphaAnimation(0.1f, 1.0f); animation.setDu...

你所不知道的Activity转场动画——ActivityOptions

相信大家对于Activity的过度动画都很熟悉了,一般情况下我们直接使用 overridePendingTransition(enterAnim, exitAnim);11 但是这种老旧、生硬的方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity转场动画(透明Activity)
举报原因:
原因补充:

(最多只允许输入30个字)