Android 仿微信Activity进入退出动画(右进右出动画 )

其实设置Activity动画的根本也就是设置View的动画,因为Activity有一个根的View叫DecorView。下面介绍两种设置Activity的动画

一.【全局配置Activity显示动画】

1.修改Activity Theme

   在styles.xml中输入以下代码

     

[html] view
plain
copy

  1. <style name="AnimationActivity" parent="@android:style/Animation.Activity">  
  2.     <item name="android:activityOpenEnterAnimation">@anim/slide_in_left</item>  
  3.     <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>  
  4.     <item name="android:activityCloseEnterAnimation">@anim/slide_in_right</item>  
  5.     <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>  
  6. </style>  

    然后在themes.xml中

    

[html] view
plain
copy

  1. <style name="ThemeActivity">  
  2.     <item name="android:windowAnimationStyle">@style/AnimationActivity</item>  
  3.     <item name="android:windowNoTitle">true</item>  
  4. </style>  

   在AndroidMainfest.xml中为Activity指定theme

2.使用代码设定

   通过调用overridePendingTransition() 可以实时修改Activity的切换动画。但需注意的是:该函数必须在调用startActivity()或者finish()后立即调用,且只有效一次。

下面举例说明。

      

AndroidManifest.xml 注意application节点 的android:theme属性

[html] view
plain
copyprint?

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     package="com.example.activityanimationdemo"  
  3.     android:versionCode="1"  
  4.     android:versionName="1.0" >  
  5.   
  6.     <uses-sdk  
  7.         android:minSdkVersion="8"  
  8.         android:targetSdkVersion="15" />  
  9.   
  10.     <application  
  11.         android:icon="@drawable/ic_launcher"  
  12.         android:label="@string/app_name"  
  13.         android:theme="@style/AppTheme" >  
  14.         <activity  
  15.             android:name=".OneActivity"  
  16.             android:label="@string/title_activity_main" >  
  17.             <intent-filter>  
  18.                 <action android:name="android.intent.action.MAIN" />  
  19.   
  20.                 <category android:name="android.intent.category.LAUNCHER" />  
  21.             </intent-filter>  
  22.         </activity>  
  23.         <activity android:name=".TwoActivity" >  
  24.         </activity>  
  25.         <activity android:name=".ThreeActivity" >  
  26.         </activity>  
  27.     </application>  
  28.   
  29. </manifest>  

看这里,主要的部分:styles.xml 

[java] view
plain
copyprint?

  1. <resources xmlns:android="http://schemas.android.com/apk/res/android">  
  2.   
  3.     <style name="AppTheme" parent="@android:style/Theme">  
  4.   
  5.         <!-- 设置没有标题 -->  
  6.         <item name="android:windowNoTitle">true</item>  
  7.         <!-- 设置activity切换动画 -->  
  8.         <item name="android:windowAnimationStyle">@style/activityAnimation</item>  
  9.     </style>  
  10.     <!-- animation 样式 -->  
  11.     <style name="activityAnimation" parent="@android:style/Animation">  
  12.         <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>  
  13.         <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>  
  14.         <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>  
  15.         <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>  
  16.     </style>  
  17.   
  18. </resources>  

slide_left_in.xml

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="200"  
  6.         android:fromXDelta="-100.0%p"  
  7.         android:toXDelta="0.0" />  
  8.   
  9. </set>  

slide_left_out.xml

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="200"  
  6.         android:fromXDelta="0.0"  
  7.         android:toXDelta="-100.0%p" />  
  8.   
  9. </set>  

slide_right_in.xml

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="200"  
  6.         android:fromXDelta="100.0%p"  
  7.         android:toXDelta="0.0" />  
  8.   
  9. </set>  

slide_right_out.xml

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="200"  
  6.         android:fromXDelta="0.0"  
  7.         android:toXDelta="100.0%p" />  
  8.   
  9. </set>  

Activity 代码,很简单,就是startactivity而已不需要什么特别的

[java] view
plain
copyprint?

  1. package com.example.activityanimationdemo;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7.   
  8. /** 
  9.  *  
  10.  * @fileName OneActivity.java 
  11.  * @author naibo-liao 
  12.  * @CreateTime 2013-5-20 上午11:55:04 
  13.  */  
  14. public class OneActivity extends Activity {  
  15.   
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.layout_one);  
  19.         findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {  
  20.             @Override  
  21.             public void onClick(View v) {  
  22.                 startActivity(new Intent(OneActivity.this, TwoActivity.class));  
  23.             }  
  24.         });  
  25.         // 返回事件  
  26.         findViewById(R.id.btn_exit).setOnClickListener(  
  27.                 new View.OnClickListener() {  
  28.                     @Override  
  29.                     public void onClick(View v) {  
  30.                         finish();  
  31.                     }  
  32.                 });  
  33.     }  
  34. }  

上一张工程图

二.【单独配置Activity显示动画】

参考代码:

eoe移动开发者社区的客户端源代码 

下载地址:http://www.okbase.net/file/item/25706

如若感觉上面代码太复杂,我自己写了个demo,有需要的同学可以下载参考。这个demo也是Activity+Fragment框架的,或许你能用上哦!

http://download.csdn.net/detail/jdsjlzx/8448321

时间: 2024-09-28 21:47:54

Android 仿微信Activity进入退出动画(右进右出动画 )的相关文章

Android仿微信滑动退出Activity

效果图: 原理: 原理一句话就能描述清楚.重写Activity的dispatchTouchEvent,滑动的时候拿到Activity栈中栈顶Activity的上一个Acticity的ContentView添加到栈顶Activity的DecorView中,滑动的过程中做视图平移,滑动结束之后把前面拿过来用的ContentView归还给上一个Activity,然后finish当前Activity. ActivityStack: 实现 Application.ActivityLifecycleCall

华为 动画效果 无效-android 仿微信在application里面设置页面跳转动画的theme 有些机型没有效果

问题描述 android 仿微信在application里面设置页面跳转动画的theme 有些机型没有效果 想做一个仿微信的左右切换动画,根据这篇文章的写法 ,发现,华为p7 系统是4.4.2 上面,根本不起作用,还是手机默认的动画效果,只有在代码里写 override 动画才起作用,求解决方案

Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解_Android

最近接了一个项目其中有功能要实现一个清理内存,要求和微信的效果一样.于是想到用surfaceView而不是继承view.下面小编给大家解析下实现思路. surfaceView是为了解决频繁绘制动画产生了闪烁,而采用了双缓冲机制,即A.B两个缓冲轮流显示在画布上,同时,使用不当,同样容易产生闪烁,这是由于A.B中有一个缓冲没有改变. 在我写这个view的时候就遇到了这个问题,研究了好久终于解决. 首先说一下思路: 微信清理缓存的动画是: 一个圆环不停的转动,同时中间有文字显示-->加载完成后,出现

Android仿微信图片点击全屏效果_Android

废话不多说先看下效果 先是微信的 再是模仿的 先说下实现原理再一步步分析 这里总共有2个Activity一个就是主页一个就是显示我们图片效果的页面参数通过Intent传送素材内容均来自网络(感谢聪明的蘑菇) 图片都是Glide异步下的下的下的重要的事情说三次然后就是用动画做放大操作然后显示出来了并没有做下载原图的实现反正也是一样 下载下来Set上去而且动画都不需要更简便. OK我们来看分析下 obj目录下分别创建了2个对象一个用来使用来处理显示页面的图片尺寸信息以及位置信息还有一个是用来附带UR

Android仿微信图片点击全屏效果

废话不多说,先看下效果: 先是微信的 再是模仿的 先说下实现原理,再一步步分析 这里总共有2个Activity一个就是主页,一个就是显示我们图片效果的页面,参数通过Intent传送,素材内容均来自网络,(感谢聪明的蘑菇) 图片都是Glide异步下的,下的,下的重要的事情说三次,然后就是用动画做放大操作然后显示出来了(并没有做下载原图的实现,反正也是一样 下载下来Set上去而且动画都不需要更简便). OK,我们来看分析下 obj,目录下分别创建了2个对象,一个用来使用来处理显示页面的图片尺寸信息以

Android仿微信朋友圈图片查看器_Android

再看文章之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个"九宫格"的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么我今天正好做了这个Demo,下面为大家讲解一下.首先按照惯例先看一下效果图吧,尤其不会录制gif动画(哎~没办法,模拟器不支持多点触控,刚好我的手机又没有Root,不能录屏,悲催啊,大家见谅,想要看真实效果的话,烦请移到文章最下方转载文章中进行源码下载,点击下载源码,运行后再看效果哈~~)

Android仿微信QQ设置图形头像裁剪功能_Android

最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue)! 图片裁剪实现方式有两种,一种是利用系统自带的裁剪工具,一种是使用开源工具Cropper.本节就为大家带来如何使用系统自带的裁剪工具进行图片裁剪~ 还是先来个简单的运行图. 额,简单说下,我待会会把代码写成小demo分享给大家,在文章末尾会附上github链接,需要的可以自行下载~ 下面来简单分

Android仿微信语音聊天功能_Android

本文实例讲述了Android仿微信语音聊天功能代码.分享给大家供大家参考.具体如下: 项目效果如下: 具体代码如下: AudioManager.java package com.xuliugen.weichat; import java.io.File; import java.io.IOException; import java.util.UUID; import android.media.MediaRecorder; public class AudioManager { private

Android仿微信QQ设置图形头像裁剪功能

最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue)! 图片裁剪实现方式有两种,一种是利用系统自带的裁剪工具,一种是使用开源工具Cropper.本节就为大家带来如何使用系统自带的裁剪工具进行图片裁剪~ 还是先来个简单的运行图. 额,简单说下,我待会会把代码写成小demo分享给大家,在文章末尾会附上github链接,需要的可以自行下载~ 下面来简单分