android界面切换之动画效果全汇总
### Android界面切换之动画效果全汇总 #### 一、Activity页面切换效果 在Android开发过程中,界面之间的切换动画是提升用户体验的重要手段之一。从Android 2.0版本开始,通过`overridePendingTransition()`方法可以非常方便地实现各种切换动画。 ##### 1.1 基本用法 此方法接受两个参数:一个是当前Activity退出时的动画资源ID,另一个是下一个Activity进入时的动画资源ID。例如: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent mainIntent = new Intent(SplashScreen.this, AndroidNews.class); SplashScreen.this.startActivity(mainIntent); SplashScreen.this.finish(); // 设置退出和进入的动画 overridePendingTransition(R.anim.mainfadein, R.anim.splashfadeout); } }, 3000); } ``` 在这个例子中,当`SplashScreen`Activity关闭并跳转到`AndroidNews`Activity时,将执行`R.anim.mainfadein`作为新Activity的进入动画,而`R.anim.splashfadeout`则作为旧Activity的退出动画。 ##### 1.2 其他实现方式 除了`overridePendingTransition()`方法外,还可以使用`getWindow().setWindowAnimations(int)`来设置窗口的动画。虽然这种方式不如前者灵活,但也可以满足基本需求。 ##### 1.3 实现特定效果 - **淡入淡出效果**:通过以下代码可以实现简单的淡入淡出动画。 ```java overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); ``` - **由左向右滑入效果**:该动画使得新Activity从左侧滑入,而当前Activity从右侧滑出。 ```java overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); ``` - **Zoom In 和 Zoom Out效果**:模仿iPhone风格的放大和缩小动画。 ```java overridePendingTransition(R.anim.zoomin, R.anim.zoomout); ``` 这里需要自定义`zoomin.xml`和`zoomout.xml`文件来实现具体的动画效果。例如,`zoomin.xml`可以这样定义: ```xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <scale android:fromXScale="2.0" android:toXScale="1.0" android:fromYScale="2.0" android:toYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:duration="@android:integer/config_mediumAnimTime"/> </set> ``` 而`zoomout.xml`则可以定义为: ```xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" android:zAdjustment="top"> <scale android:fromXScale="1.0" android:toXScale=".5" android:fromYScale="1.0" android:toYScale=".5" android:pivotX="50%p" android:pivotY="50%p" android:duration="@android:integer/config_mediumAnimTime"/> <alpha android:fromAlpha="1.0" android:toAlpha="0" android:duration="@android:integer/config_mediumAnimTime"/> </set> ``` 在这些XML文件中,`<scale>`元素用于控制放大或缩小的比例和速度,而`<alpha>`元素则用于控制透明度的变化。 #### 二、Android菜单动画 这一部分讨论的是基于Android SDK提供的菜单动画,而不是指设备物理按键所弹出的菜单。在Android中,可以通过多种方式实现菜单项的动画效果,包括但不限于淡入淡出、缩放等。 - **淡入淡出动画**:可以为菜单项添加渐显或渐隐的动画效果。 - **缩放动画**:使得菜单项在显示时有放大或缩小的效果。 为了实现这些动画,通常需要自定义菜单项的XML布局文件,并在其中加入相应的动画配置。例如,可以通过在菜单项的XML布局文件中加入`<animation-list>`标签来实现复杂的动画序列。 总结而言,在Android应用开发中,利用上述方法和技术可以轻松实现丰富的界面切换动画效果,从而显著提高用户界面的交互性和吸引力。无论是简单的淡入淡出还是复杂的Zoom In/Out效果,都能通过简单的API调用和自定义动画文件来实现。这对于提升用户体验有着重要的作用。
剩余234页未读,继续阅读
- 粉丝: 1
- 资源: 34
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页