android左右切换页面,Activity页面切换动画--之左右切换

效果图:

36fd9de16cdf8d7f4f7031c632b0d5ff.png

af55e3532089b8a893fcd473620eec22.png

663b15b43b9185f2bcfff390048b231d.png

首先定义四个动画效果

25834fb814967a4d38e2f5618777db87.png

进:左→右<?xml version="1.0" encoding="utf-8"?>

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:duration="300"

android:fromXDelta="-100%p"

android:toXDelta="0"/>

出:左→右<?xml version="1.0" encoding="utf-8"?>

android:duration="300"

android:fromXDelta="0"

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:toXDelta="100%p" />

进:右→左<?xml version="1.0" encoding="utf-8"?>

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:duration="300"

android:fromXDelta="100%p"

android:toXDelta="0"/>

出:右→左<?xml version="1.0" encoding="utf-8"?>

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:duration="300"

android:fromXDelta="0"

android:toXDelta="-100%p"/>

Acitivity代码块:package cn.cbd.pagechange;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.ViewFlipper;

public class PageChangeTestActivity extends Activity

{

private ViewFlipper vf;

private Animation aInLeftToRight;

private Animation aOutRightToLeft;

private Animation aOutLeftToRight;

private Animation aInRightToLeft;

private float startX;

private float endX;

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

vf = (ViewFlipper) findViewById(R.id.vf_pageChange);

// 设置动画 找到各个Animation对象

aInLeftToRight = AnimationUtils.loadAnimation(this,

R.anim.inlefttoright);

aOutRightToLeft = AnimationUtils.loadAnimation(this,

R.anim.outrighttoleft);

aOutLeftToRight = AnimationUtils.loadAnimation(this,

R.anim.outlefttoright);

aInRightToLeft = AnimationUtils.loadAnimation(this,

R.anim.inrighttoleft);

}

// 判断activity的触摸事件

public boolean onTouchEvent(MotionEvent event)

{

// 按下

if (event.getAction() == MotionEvent.ACTION_DOWN)

{

// 记录开始位置

startX = event.getX();

System.out.println("----" + "按下");

}

// 移动

if (event.getAction() == MotionEvent.ACTION_MOVE)

{

System.out.println("----" + "移动");

}

// 抬起

if (event.getAction() == MotionEvent.ACTION_UP)

{

// 记录结束的位置

endX = event.getX();

// 判断移动距离 >0 说明从左往右

if (endX - startX > 0)

{

vf.setOutAnimation(aOutLeftToRight);

vf.setInAnimation(aInLeftToRight);

vf.showPrevious();

} else

{

vf.setInAnimation(aInRightToLeft);

vf.setOutAnimation(aOutRightToLeft);

vf.showNext();

}

System.out.println("----" + "抬起");

}

// 取消

if (event.getAction() == MotionEvent.ACTION_CANCEL)

{

System.out.println("----" + "取消");

}

// return super.onTouchEvent(event);

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值