Android中Activity多页滑动切换效果(使用ViewFlipper)
16lz
2021-01-23
效果:
布局:
定义动画效果:
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);}}
更多相关文章
- Android多种View动画:EasyAndroidAnimations
- [AndroidTips]Android预定义样式
- Android之gif动画实现
- Android开发实现拖动效果
- RecyclerView 实现item点击水波纹动画