Android中如何实现手势翻页效果

Android中如何实现手势翻页效果

这篇文章主要介绍了Android中如何实现手势翻页效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中如何实现手势翻页效果文章都会有所收获,下面我们一起来看看吧。

activity_main.xml布局界面代码:

Android中如何实现手势翻页效果

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!--定义ViewFlipper组件--><ViewFlipperandroid:id="@+id/flipper"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

MainActivity.java逻辑代码:

packagecom.fukaimei.gestureflip;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.GestureDetector;importandroid.view.MotionEvent;importandroid.view.View;importandroid.view.animation.Animation;importandroid.view.animation.AnimationUtils;importandroid.widget.ImageView;importandroid.widget.ViewFlipper;publicclassMainActivityextendsAppCompatActivityimplementsGestureDetector.OnGestureListener{//ViewFlipper实例ViewFlipperflipper;//定义手势检测实例GestureDetectordetector;//定义一个动画数组,用于为ViewFlipper指定切换动画效果Animation[]animations=newAnimation[4];//定义手势动作亮点之间的最小距离finalintFLIP_DISTANCE=50;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建手势检测器detector=newGestureDetector(this,this);//获得ViewFlipper实例flipper=(ViewFlipper)this.findViewById(R.id.flipper);//为ViewFlipper添加8个ImageView组件flipper.addView(addImageView(R.drawable.img01));flipper.addView(addImageView(R.drawable.img02));flipper.addView(addImageView(R.drawable.img03));flipper.addView(addImageView(R.drawable.img04));flipper.addView(addImageView(R.drawable.img05));flipper.addView(addImageView(R.drawable.img06));flipper.addView(addImageView(R.drawable.img07));flipper.addView(addImageView(R.drawable.img08));//初始化Animation数组animations[0]=AnimationUtils.loadAnimation(this,R.anim.left_in);animations[1]=AnimationUtils.loadAnimation(this,R.anim.left_out);animations[2]=AnimationUtils.loadAnimation(this,R.anim.right_in);animations[3]=AnimationUtils.loadAnimation(this,R.anim.right_out);}//定义添加ImageView的工具方法privateViewaddImageView(intresId){ImageViewimageView=newImageView(this);imageView.setImageResource(resId);imageView.setScaleType(ImageView.ScaleType.CENTER);returnimageView;}@OverridepublicbooleanonTouchEvent(MotionEventevent){//将该Activity上的触碰事件交给GestureDetector处理returndetector.onTouchEvent(event);}@OverridepublicbooleanonDown(MotionEvente){returnfalse;}@OverridepublicvoidonShowPress(MotionEvente){}@OverridepublicbooleanonSingleTapUp(MotionEvente){returnfalse;}@OverridepublicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){returnfalse;}@OverridepublicvoidonLongPress(MotionEvente){}@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){//如果第一个触点事件的X坐标大于第二个触点事件的X坐标超过FLIP_DISTANCE//也就是手势从右向左滑if(e1.getX()-e2.getX()>FLIP_DISTANCE){//为flipper设置切换的动画效果flipper.setInAnimation(animations[0]);flipper.setOutAnimation(animations[1]);flipper.showPrevious();returntrue;}//如果第二个触点事件的X坐标大于第一个触点事件的X坐标超过FLIP_DISTANCE//也就是手势从右向左滑elseif(e2.getX()-e1.getX()>FLIP_DISTANCE){//为flipper设置切换的动画效果flipper.setInAnimation(animations[2]);flipper.setOutAnimation(animations[3]);flipper.showNext();returntrue;}returnfalse;}}

anim/left_in.xml代码:

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="100%p"android:toXDelta="0"/><alphaandroid:duration="500"android:fromAlpha="0.1"android:toAlpha="1.0"/></set>

anim/left_out.xml代码:

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="0"android:toXDelta="-100%p"/><alphaandroid:duration="500"android:fromAlpha="0.1"android:toAlpha="1.0"/></set>

anim/right_in.xml代码:

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="-100%p"android:toXDelta="0"/><alphaandroid:duration="500"android:fromAlpha="0.1"android:toAlpha="1.0"/></set>

anim/right_out.xml代码:

<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="0"android:toXDelta="100%p"/><alphaandroid:duration="500"android:fromAlpha="0.1"android:toAlpha="1.0"/></set>

关于“Android中如何实现手势翻页效果”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Android中如何实现手势翻页效果”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-04-15 22:29:48
收藏
分享
海报
0 条评论
29
上一篇:Android中如何设置阴影效果 下一篇:Android中如何实现一个图片查看器
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码