效果:

Android中Activity多页滑动切换效果(使用ViewFlipper)_第1张图片


布局:


                                                                                    


定义动画效果:

package com.cn.zzti.ly.util;import android.view.animation.Animation;import android.view.animation.TranslateAnimation;/* * 定义动画效果 */public class AnimationUtil {public static Animation inLeftToRight() {//定义平移动画TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -1.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f);translateAnimation.setDuration(300);//设置持续时间return translateAnimation;}public static Animation outLeftToRight() {TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 1.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f);translateAnimation.setDuration(300);return translateAnimation;}public static Animation inRightToLeft() {TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 1.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f);translateAnimation.setDuration(300);return translateAnimation;}public static Animation outRightToLeft() {TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, -1.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f);translateAnimation.setDuration(300);return translateAnimation;}}

Activity:

package com.cn.zzti.ly.ui;import com.cn.zzti.ly.util.AnimationUtil;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.widget.ViewFlipper;public class MainActivity extends Activity {private ViewFlipper viewFlipper;private float startX;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);viewFlipper = (ViewFlipper) this.findViewById(R.id.viewFlipper);}@Overridepublic boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN){startX = event.getX();}else if (event.getAction() == MotionEvent.ACTION_UP){float endX = event.getX();if (endX > startX + 50){//设置进入和出去的平移动画效果viewFlipper.setInAnimation(AnimationUtil.inLeftToRight());viewFlipper.setOutAnimation(AnimationUtil.outLeftToRight());viewFlipper.showNext();//显示下一页}else if (endX < startX - 50){viewFlipper.setInAnimation(AnimationUtil.inRightToLeft());viewFlipper.setOutAnimation(AnimationUtil.outRightToLeft());viewFlipper.showPrevious();//显示前一页}return true;}return super.onTouchEvent(event);}}


更多相关文章

  1. Android多种View动画:EasyAndroidAnimations
  2. [AndroidTips]Android预定义样式
  3. Android之gif动画实现
  4. Android开发实现拖动效果
  5. RecyclerView 实现item点击水波纹动画

随机推荐

  1. 从解决开发环境问题聊聊为什么要看源码
  2. Dubbo和JDK的SPI究竟有何区别?
  3. 扬眉吐气!Python力压Java,成为第二编程语言
  4. android 使用XmlResourceParser 解析XML
  5. 源码解析 | Dubbo-SPI和IoC的前世今生
  6. 源码解析 | Dubbo-SPI和AOP的前世今生
  7. 还有这种操作?浅析为什么要看源码
  8. Android(安卓)ActionBar的源代码分析(一)
  9. 干货丨时序数据库DolphinDB异常检测引擎
  10. Android百度地图的简单实现