`

通过设置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间切换时的动画效果,这不仅可以提升用户体验,也能让应用更具个性化和专业感。本篇将详细介绍如何利用Theme来定制Activity间的切换动画。 首先,理解Android的Theme和Style...

    安卓通过theme实现窗体切换动画

    实现窗体切换动画的第一步是定义一个包含动画效果的`Theme`。在`styles.xml`中,我们需要定义一个新的主题,比如叫做`AppTheme.WindowTransition`,并指定`android:windowEnterAnimation`和`android:...

    用各种动画效果实现Activity切换

    总结来说,Android的Animation API为开发者提供了丰富的工具来创建各种Activity切换效果,从简单的淡入淡出到复杂的旋转、压缩和交错,都可以通过设置不同参数和组合动画来实现。熟练掌握这些技巧,能够极大地提升...

    activity切换动画库

    在Android系统中,通过设置Window的Transition动画可以实现Activity之间的过渡效果。默认情况下,Android提供了滑动和平淡两种基本的切换动画。然而,开发者可以根据需求,创建自己的动画资源文件,以实现更为独特和...

    各种Activity切换效果

    在Android应用开发中,Activity是用户界面的基本单元,它...总之,这个资源包提供了多种Activity切换效果的实现,可以帮助开发者提升应用的交互体验,通过学习和实践这些示例,可以更好地理解和运用Android的动画系统。

    Activity仿qq进场切换动画

    对于QQ的进场切换动画,它通常涉及到透明度、缩放、平移等效果,这些可以通过Android的补间动画实现。补间动画允许我们指定一个开始值和结束值,然后系统会自动计算中间值,形成平滑过渡的效果。 在Eclipse中,我们...

    Activity之间切换动画

    自API级别21(Android Lollipop)开始,系统内置了多种预设的Activity切换动画,这些动画可以通过设置Intent的Flags或在主题中进行全局配置。 1. **动画类型**: - **滑动动画**:这是最常见的动画类型,包括左右...

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

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

    Android activity动画案例

    本教程将深入探讨如何在Android中实现Activity动画,通过具体的案例——BetweenActivityAnimationDemo来详细讲解。 首先,Android提供了两种主要类型的动画:视图动画(View Animation)和属性动画(Property ...

    测试Activity切换动画

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

    android中activity切换动画

    总之,Android中的Activity切换动画通过属性动画实现,可以极大地提升用户体验。通过合理设计和组合动画,开发者可以创造出各种动态效果,使应用程序更具吸引力。在实际开发中,应根据应用风格和用户需求灵活运用...

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

    总结起来,通过以上步骤,我们实现了自定义Activity切换动画,让Activity之间的过渡更加平滑自然。在实际开发中,可以根据项目需求调整动画时长、动画类型等参数,以达到最佳的视觉效果。同时,这种方法也可以扩展到...

    activity切换动画

    在Android开发中,Activity...开发者可以通过自定义XML动画资源或编程方式来实现各种动画效果,使Activity的切换更加生动有趣。了解和掌握Activity切换动画的制作技巧,可以帮助开发者打造出更具吸引力的Android应用。

    Android 关于 Activity 之间的切换动画

    总的来说,Android Activity之间的切换动画是通过Transition API、自定义ViewGroup和Animator、以及Android系统的Activity管理机制来实现的。开发者可以通过深入理解源码、熟练运用工具,创造出丰富的交互体验,提升...

    Android改Theme实现夜间模式

    - 对于使用第三方库的应用,需确保库也支持动态Theme切换,或者对库进行适配。 - 切换Theme时可能会导致短暂的视觉闪烁,可以通过使用过渡动画或延迟Activity重启来缓解这个问题。 总结,实现Android应用的夜间...

    Android Style\\Theme动态切换

    - 应用级别的切换:可以通过修改`AndroidManifest.xml`中Activity的`android:theme`属性来实现。 - 运行时切换:在运行时,可以通过调用`setTheme()`方法在Activity的`onCreate()`方法之前更改主题。这会改变...

    android动画效果集锦

    而Push_down_out.xml则是通过平移动画实现Activity向下推出的效果: ```xml android:fromYDelta="0" android:toYDelta="100%p" android:duration="300" /&gt; ``` 在这个动画中,Activity会沿着Y轴向下移动其...

    activity转场动画效果

    在Android开发中,Activity转场动画是提升用户体验的重要一环,它使得应用在不同界面间的切换更为流畅自然。本文将详细讲解如何实现Activity之间的动画效果,并提供可以直接复制使用的代码示例。 首先,Android中的...

    android 九宫格模式实现多个activity的切换

    这可以通过设置Activity的启动模式和过度动画实现。 ```xml &lt;activity android:name=".Activity0" android:theme="@style/Theme.AppCompat.Translucent" /&gt; ``` 在styles.xml中定义主题: ```xml &lt;style name="...

    android studio 几种基本Activity效果的实现

    通过在Activity主题中设置`android:theme="@android:style/Theme.NoTitleBar.Fullscreen"`,可以实现全屏效果。在API 19及以上版本,可以使用`SYSTEM_UI_FLAG_FULLSCREEN`标志实现隐藏系统UI。 7. **透明状态栏...

Global site tag (gtag.js) - Google Analytics