首页 > 代码库 > activity切换动画和页面切换动画

activity切换动画和页面切换动画

Activity切换动画

要实现Activity切换动画需要靠overridePendingTransition来实现,里面有两个参数分别是进入Activity时的动画和离开Activity时的动画。

需要注意的是必须在StartActivity()或finish()之后立即调用

比如在MainActivity中有一个Button,点击Button后跳转到OtherActivity中代码如下:

		Intent intent = new Intent(this, OtherActivity.class);
		startActivity(intent);
		this.overridePendingTransition(R.anim.enteralpha, R.anim.exitalpha);

界面切换动画

界面切换动画要靠ViewFlipper来实现

    <ViewFlipper
        android:id="@+id/view_flipper"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!-- 第一页 -->

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#009900"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="第一页" />
        </LinearLayout>
        <!-- 第二页 -->

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#ffff00"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="第二页" />
        </LinearLayout>
    </ViewFlipper>

然后判断手指是向左还是向右滑动的

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		if (event.getAction() == MotionEvent.ACTION_DOWN) {
			startX = event.getX();

		} else if (event.getAction() == MotionEvent.ACTION_UP) {
			float endX = event.getX();
			if (endX > startX ) {

				flipper.showNext();// 显示下一页

			} else if (endX<startX) {

				flipper.showPrevious();// 显示前一页
			}
			return true;
		}

		return super.onTouchEvent(event);
	}

这样在手指左右滑动的时候切换页面。