`

通过设置theme方式实现切换activity动画效果

 
阅读更多

转载自:

http://blog.csdn.net/lnb333666/article/details/8962715

 

如题:反编译的了微信的包才知道这做饭,惭愧惭愧...

      

 

 

AndroidManifest.xml 注意application节点 的android:theme属性,这个属性是影响全局的,只要其它activity没有单独设置过theme就使用该theme:

 

 

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.activityanimationdemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".OneActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".TwoActivity" >
        </activity>
        <activity android:name=".ThreeActivity" >
        </activity>
    </application>

</manifest>

 

 

看这里,主要的部分:styles.xml ,styples改要是用来改写系统提供的样式的东西,一般都是在item里面写着android:的样式,只是替换了系统提供的样式的东西:

 

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="AppTheme" parent="@android:style/Theme">

        <!-- 设置没有标题 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 设置activity切换动画 -->
        <item name="android:windowAnimationStyle">@style/activityAnimation</item>
    </style>
    <!-- animation 样式 -->
    <style name="activityAnimation" parent="@android:style/Animation">
        <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
    </style>

</resources>

 

 

 

slide_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="200"
        android:fromXDelta="-100.0%p"
        android:toXDelta="0.0" />

</set>

 

slide_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="200"
        android:fromXDelta="0.0"
        android:toXDelta="-100.0%p" />

</set>

 

slide_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="200"
        android:fromXDelta="100.0%p"
        android:toXDelta="0.0" />

</set>

 

 

slide_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="200"
        android:fromXDelta="0.0"
        android:toXDelta="100.0%p" />

</set>

 

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

package com.example.activityanimationdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

/**
 * 
 * @fileName OneActivity.java
 * @author naibo-liao
 * @CreateTime 2013-5-20 上午11:55:04
 */
public class OneActivity extends Activity {

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_one);
		findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				startActivity(new Intent(OneActivity.this, TwoActivity.class));
			}
		});
		// 返回事件
		findViewById(R.id.btn_exit).setOnClickListener(
				new View.OnClickListener() {
					@Override
					public void onClick(View v) {
						finish();
					}
				});
	}
}

 

上一张工程图

 

就这些

 

 

分享到:
评论

相关推荐

    利用Theme自定义Activity间的切换动画

    利用Theme自定义Activity间的切换动画

    Dragger-用ViewDragHelper实现的activity切换动画。.zip

    介绍:用ViewDragHelper实现的activity切换动画。运行效果:使用说明: 你可以将这个库当成view来用:将DraggerView添加到root layout,并且在里面加入两个layout。  android:layout_width="match_parent"  ...

    测试Activity切换动画

    设置Activity的切换动画,有两种方式: 1.使用overridePendingTransition(新Activity进入动画, 旧Activity退出动画),需要紧接在startActivity 和finish()后。 2.在manifest中配置Activity的theme。 下面着重说明...

    Android利用Theme自定义Activity间的切换动画

    主要为大家详细介绍了Android利用Theme自定义Activity间的切换动画,感兴趣的小伙伴们可以参考一下

    去掉activity默认动画效果的简单方法

    很多手机都会自带一些Activity切换动画,项目中如果我们需要禁用掉系统Activity切换的动画,可以使用如下方法: 一、重写Activity的Them中的windowAnimationStyle相关属性,并保存在res/values/styles.xml &lt;...

    JianDan-高仿煎蛋客户端.zip

    及加载本地缓存图片的实现RecyclerView自动加载、加载完成回调,以及item进入动画多楼层回复自定义控件的实现严格模式(StrictMode)的设置及用法使用GreenDao对数据进行本地缓存对网络状态的实时检测对UIL的个性化...

    Android项目源码煎蛋网非官方客户端项目源码.zip

    Application、Activity和Fragment基类的基本设计 MVC架构的使用 对超长图片加载的解决方案 WebView与JS通信,及加载本地缓存图片的实现 RecyclerView自动加载、加载完成回调,以及item进入动画 多楼层回复...

    疯狂Android讲义源码

     2.7.4 设置与菜单项关联的Activity 140  2.7.5 上下文菜单 141  2.8 本章小结 143  第3章 事件处理 144  3.1 Android的事件处理 145  3.2 基于监听的事件处理 145  3.2.1 事件监听的处理模型 145  3.2.2 ...

    疯狂Android讲义.part2

    2.7.4 设置与菜单项关联的Activity 140 2.7.5 上下文菜单 141 2.8 本章小结 143 第3章 事件处理 144 3.1 Android的事件处理 145 3.2 基于监听的事件处理 145 3.2.1 事件监听的处理模型 145 3.2.2 事件和事件监听器 ...

    疯狂Android讲义.part1

    2.7.4 设置与菜单项关联的Activity 140 2.7.5 上下文菜单 141 2.8 本章小结 143 第3章 事件处理 144 3.1 Android的事件处理 145 3.2 基于监听的事件处理 145 3.2.1 事件监听的处理模型 145 3.2.2 事件和事件监听器 ...

Global site tag (gtag.js) - Google Analytics