android统一添加activity切换动画

xiaoxiao2021-02-28  107

(转载)http://blog.csdn.net/caption_deng/article/details/50936418

android统一添加activity切换动画

   在告别2015最后一天的时候就决定写写博客,由于工作忙碌一拖就是几个月过去了,是时候来聊聊人生谈谈理想。 ----2016-03-20 里程碑   在实际的应用开发过程中各种动画效果是必不可少的,这样可以让用户体验到app的流传度和适用度,方便用户快速的熟悉app应用的操作。废话不多说,直接开播。。。 实现activity界面切换动画效果有两种方式: 1.styles.xml编写动画主题,在AndroidManifest.xml里面使用。 2.在activity的onCreate()和finish() 里面调用overridePendingTransition函数 使用两种方法的前提都是需要准备动画效果文件: slide_in_form_left.xml [html]  view plain  copy <?xml version="1.0" encoding="utf-8"?>   <set xmlns:android="http://schemas.android.com/apk/res/android">          <translate           android:duration="200"           android:fromXDelta="-100%p"           android:toXDelta="0" />   </set>   slide_in_for_right.xml [html]  view plain  copy <?xml version="1.0" encoding="utf-8"?>   <set xmlns:android="http://schemas.android.com/apk/res/android">          <translate           android:duration="200"           android:fromXDelta="100%p"           android:toXDelta="0" />   </set>    slide_out_to_left.xml [html]  view plain  copy <?xml version="1.0" encoding="utf-8"?>   <set xmlns:android="http://schemas.android.com/apk/res/android">          <translate           android:duration="200"           android:fromXDelta="0"           android:toXDelta="-100%p" />   </set>    slide_out_to_right.xml [html]  view plain  copy <set xmlns:android="http://schemas.android.com/apk/res/android">       <translate           android:duration="200"           android:fromXDelta="0"           android:toXDelta="100%p" />   </set>   写完动画效果文件后,就按照第一种方式配置: styles.xml 文件配置启动关闭效果动画 [html]  view plain  copy <!-- 界面切换动画 -->       <style name="animfade" parent="@android:style/Animation.Activity">           <item name="android:activityOpenEnterAnimation">@anim/slide_in_from_right</item>           <item name="android:activityOpenExitAnimation">@anim/slide_out_to_left</item>           <item name="android:activityCloseExitAnimation">@anim/slide_out_to_right</item>           <item name="android:activityCloseEnterAnimation">@anim/slide_in_from_left</item>       </style>   [html]  view plain  copy <!-- Base application theme. -->       <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">           <!-- Customize your theme here. -->           <item name="android:windowAnimationStyle">@style/animfade</item>       </style>   在AndroidManifest.xml配置Theme [html]  view plain  copy <application           android:allowBackup="true"           android:icon="@mipmap/icon_logo"           android:label="@string/app_name"           android:supportsRtl="true"           android:theme="@style/AppTheme">   第二种方式配置,在开发中一般都会配置基类BaseActivity,让所有的Activity去继承BaseActivity方便管理 在BaseActivity中OnCreate()启动 [java]  view plain  copy switch (STATE) {                   case LEFT:                       //输入,退出  的界面                       overridePendingTransition(R.anim.left_in, R.anim.left_out);                       break;                   case RIGHT:                       overridePendingTransition(R.anim.right_in, R.anim.right_out);                       break;                   case TOP:                       overridePendingTransition(R.anim.top_in, R.anim.top_out);                       break;                   case BOTTOM:                       overridePendingTransition(R.anim.bottom_in, R.anim.bottom_out);                       break;                   case SCALE:                       overridePendingTransition(R.anim.scale_in, R.anim.scale_out);                       break;                   case FADE:                       overridePendingTransition(R.anim.fade_in, R.anim.fade_out);                       break;               }   finish()关闭 [java] view plain copy @Override      public void finish() {          super.finish();              switch (STATE) {                  case LEFT:                      overridePendingTransition(R.anim.left_in, R.anim.left_out);                      break;                  case RIGHT:                      overridePendingTransition(R.anim.right_in, R.anim.right_out);                      break;                  case TOP:                      overridePendingTransition(R.anim.top_in, R.anim.top_out);                      break;                  case BOTTOM:                      overridePendingTransition(R.anim.bottom_in, R.anim.bottom_out);                      break;                  case SCALE:                      overridePendingTransition(R.anim.scale_in, R.anim.scale_out);                      break;                  case FADE:                      overridePendingTransition(R.anim.fade_in, R.anim.fade_out);                      break;              }                }   参考灵感: https://github.com/GcsSloop/SloopBlog/blob/master

转载请注明原文地址: https://www.6miu.com/read-43004.html

最新回复(0)