动画代码解读

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        xmlns:android="http://schemas.android.com/apk/res/android"        android:duration="100"        android:fromXDelta="-100%p"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0%p" />set>

从左边出来到正常显示,interpolator表示速度以根号X形式变化。


应用(在哪里声明都可以,推荐在intent附近和重写finish里)

overridePendingTransition(R.anim.entry_in,R.anim.register_out);

第一个参数是 新的活动打开的动画,第二个参数是 这个活动关闭的动画


效果



全部代码

entry_in

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        xmlns:android="http://schemas.android.com/apk/res/android"        android:duration="100"        android:fromXDelta="-100%p"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0%p" />set>

entry_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        xmlns:android="http://schemas.android.com/apk/res/android"        android:duration="100"        android:fromXDelta="0%p"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="-50%p" />set>

register_in

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        xmlns:android="http://schemas.android.com/apk/res/android"        android:duration="100"        android:fromXDelta="100%p"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0%p" />set>

register_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        xmlns:android="http://schemas.android.com/apk/res/android"        android:duration="100"        android:fromXDelta="0%p"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="100%p" />set>

使用

entry activity里

case R.id.open_register:    startActivity(RegisterActivity.class);    overridePendingTransition(R.anim.register_in,R.anim.entry_out);    break;

register activity里

@Overridepublic void finish() {    super.finish();    overridePendingTransition(R.anim.entry_in,R.anim.register_out);}


当然这样声明那么java代码就会太过冗余,在注册文件里声明是最好

不过style中不能同时继承Animation.Activity和Theme.AppCompat.Light.NoActionBar,就很麻烦

更多相关文章

  1. 小游戏Mixed Color源代码分享
  2. android中配置文件property的用途以及使用
  3. android 实现自定义卫星菜单
  4. 模拟实现android 文件管理器功能(循环打开文件夹)
  5. Activity的创建
  6. Android图形动画概述
  7. Eclipse中跟踪调试Android(安卓)Framework源代码
  8. Appium+Python实现iOS自动化测试~环境搭建
  9. Android基于UDP的局域网聊天通信(有完整Demo)

随机推荐

  1. Android开发技术周报 Issue#56
  2. 关于android的4.2的0文件夹的详解
  3. Handler全面解析
  4. Android(安卓)图片对比(图片相似度)代码
  5. Android(安卓)APK的反编译方法
  6. 安卓-开发常见问题之修改android工程的ja
  7. 在配置文件(manifest file)中声明activit
  8. Android(安卓)Studio使用jni、so库
  9. Android(安卓)ViewPager前两页显示空白
  10. Android监听输入法弹窗和关闭的实现方法