• 在AndroidMenifest.xml文件里面的Activity声明中,增加自己的Theme声明,如下:

<activity

android:name=".MyOrderListServiceActivity"

android:theme="@style/MyTheme"

>

  • 在values的style.xml文件里声明 一个style,起名为MyTheme,注意这里面有我自定义的东西,涉及到动画的声明,就只有<item name="android:windowAnimationStyle">@style/AnimationActivity</item>这一项。

<style name="MyTheme">

<!-- float_box为我们定义的窗口背景 -->

<item name="android:backgroundDimEnabled">true</item>

<item name="android:windowFrame">@null</item>

<item name="android:windowBackground">@android:color/transparent</item>

<item name="android:windowIsTranslucent">true</item>

<item name="android:windowContentOverlay">@null</item>

<item name="android:windowNoTitle">true</item>

<item name="android:windowFullscreen">true</item>

<item name="android:windowAnimationStyle">@style/AnimationActivity</item>

</style>

  • 在values的style.xml文件里声明 一个style,起名为AnimationActivity,没错就是上面的MyTheme中的windowAnimationStyle的实现,如下:

    <style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">

    <item name="android:activityOpenEnterAnimation">@anim/slide_in_bottom</item>

    <item name="android:activityOpenExitAnimation">@anim/slide_out_bottom</item>

    <item name="android:activityCloseEnterAnimation">@anim/slide_in_bottom</item>

    <item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>

    </style>

  • 添加完以上的内容,有的机器虽然进入的动画是可用的,但是退出的动画无效,还需要在你的Activity中添加一些代码,保证animation的完美运行

  • 添加全局变量

    protected int activityCloseEnterAnimation;

    protected int activityCloseExitAnimation

  • 在OnCreate里面添加如下代码:

    TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle});

    int windowAnimationStyleResId = activityStyle.getResourceId(0, 0);

    activityStyle.recycle();

    activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation});

    activityCloseEnterAnimation = activityStyle.getResourceId(0, 0);

    activityCloseExitAnimation = activityStyle.getResourceId(1, 0);

    activityStyle.recycle();

  • 在你的程序finish之前,需要调用如下代码:

    overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);

    我调用的例子如下:

    @Override

    public void finish() {

    Log.i(TAG, "finish");

    super.finish();

    overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);

    }

这样就可以了。

更多相关文章

  1. Android(安卓)Camera使用小结
  2. XamarinAndroid组件教程RecylerView动画组件使用动画(3)
  3. Android(安卓)Studio(六):Android(安卓)Studio添加注释模板
  4. ADT对应的.android中找不到adb_usb.ini
  5. Android(安卓)Camera使用小结
  6. android更新
  7. 使用反射调用android API中的hide方法
  8. Android所有系统资源图标android.R.drawable查看
  9. Notification中更新进度条

随机推荐

  1. Android开发者的演示工具——asm.jar
  2. Android 设备管理API概览(Device Administ
  3. Android的Activity屏幕切换动画(一)-左右
  4. 解析ANDROID ps命令执行后各项参数的含义
  5. android 开发-数据存储之文件存储
  6. Android(安卓)Studio Error: null, Canno
  7. Android中Touch事件的处理
  8. Android图形系统(八)-app与SurfaceFlinger
  9. 关于Android中传递数据的一些讨论
  10. Android NDK 开发教程一:安装NDK