这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下。

在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法:

public void overridePendingTransition (int enterAnim, int exitAnim)

其中:

enterAnim 定义Activity进入屏幕时的动画

exitAnim 定义Activity退出屏幕时的动画

overridePendingTransition 方法必须在startActivity()或者 finish()方法的后面。

Android已经内置了几种动画效果,可以见 android.R.anim 类。一般情况下我们需要自己定义屏幕切换的效果。首先我们先了解Activity的位置定义,如下图:


从上图可以看出,以手机屏幕下面边未X轴,屏幕左边为Y轴,当Activity在X轴值为-100%p时,刚好在屏幕的左边(位置1),当X轴值为0%p时,刚好再屏幕内(位置2),当X=100%p时刚好在屏幕右边(位置3)。

清楚了位置后,我们就可以实现左右滑动的切换效果,首先让要退出的Activity从位置2移动到位置1,同时让进入的Activity从位置3移动位置2,这样就能实现从左右切换效果。

实现过程如下,首先定义2个动画,在 res目录创建anim目录, 然后在目录创建动画的xml文件:out_to_left.xml (从左边退出动画) 、in_from_right.xml(从右边进入动画)

out_to_left.xml (从 位置2 移动到 位置1)

<?xml version="1.0" encoding="utf-8"?>    

in_from_right.xml (从 位置3 移动到 位置2)

<?xml version="1.0" encoding="utf-8"?>    

注: android:fromXDelta 动画开始的位置,  android:toXDelta 动画结束的位置,android:duration动画的时间。

Android 代码如下:

public class LeftRightSlideActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                   Button button = (Button)findViewById(R.id.button1);        button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(LeftRightSlideActivity.this, SlideSecondActivity.class);startActivity(intent);//设置切换动画,从右边进入,左边退出overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);}});    }}

效果图如下:

    

虽然左右滑动切换的实现很简单,但是对于原理的理解很重要,掌握了原理可以充分发挥想象力设计出各种各样的动画效果,希望对一些入门的新手有帮助。

以后在慢慢整理一些项目中用到的切换动画效果。


代码见:点击打开链接

更多相关文章

  1. android中的SVG图像的各个属性意义
  2. Android(安卓)Animation学习笔记
  3. Android(安卓)FrameLayout子view居中(左居中,右居中)等
  4. [Android(安卓)动画]简要分析一下Animator 与 Animation
  5. Android属性动画,从源码的角度分析
  6. 浅谈Android的Rotation动画的应用
  7. Android(安卓)Animation学习笔记
  8. Android(安卓)Animation
  9. android Animation

随机推荐

  1. Android第四讲——常用的基本控件(三)Toa
  2. Android(安卓)稀奇古怪的问题
  3. Android事件总线(二)EventBus3.0源码解析
  4. Android进阶(三)ButterKnife源码解析
  5. android studio 3.0 preview 使用kotlin
  6. 读书笔记——《Android(安卓)开发艺术探
  7. Android(安卓)RoboGuice 使用指南(14):In
  8. Android(安卓)双屏异显
  9. android手机连接到ubuntu方法
  10. Android中配置改变(Configuration)的处理状