用ViewFlipper与GestureDetector来实现图片的左右滑动效果。

首先在布局xml中添加ViewFlipper控件:

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

在Activity中实现GestureDetector的OnGestureListener监听:

mGesture=newGestureDetector(this,this);
publicbooleanonDown(MotionEvente){returnfalse;}publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){returnfalse;}publicvoidonLongPress(MotionEvente){}publicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){returnfalse;}publicvoidonShowPress(MotionEvente){}publicbooleanonSingleTapUp(MotionEvente){returnfalse;}

为ViewFilpper加入View,如图片、文字等:

mFilpper=(ViewFlipper)findViewById(R.id.flipper);mFilpper.addView(addImageView(R.drawable.chrysanthemum));mFilpper.addView(addImageView(R.drawable.desert));mFilpper.addView(addImageView(R.drawable.ic_launcher));mFilpper.addView(addImageView(R.drawable.koala));mFilpper.addView(addImageView(R.drawable.penguins));mFilpper.addView(addImageView(R.drawable.lighthouse));mFilpper.addView(addText("你好"));
publicImageViewaddImageView(intresId){ImageViewimage=newImageView(this);image.setImageResource(resId);returnimage;}privateViewaddText(Stringstring){TextViewtextView=newTextView(this);textView.setText(string);returntextView;}

在onFling()中编写滑动效果:

@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){Log.e("onFling","onFling");if(e1.getX()-e2.getX()>120){mFilpper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.left_in));mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.left_out));mFilpper.showPrevious();}elseif(e2.getX()-e1.getX()>120){mFilpper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.rigth_in));mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.right_out));mFilpper.showNext();}returnfalse;}

其中的left_in.xml如下:

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

left_out.xml:

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

right_in.xml:

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

right_out.xml:

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

最后还要重写onTouchEvent()方法在其中调用GestureDetector的onTouchEvent()方法:

@OverridepublicbooleanonTouchEvent(MotionEventevent){Log.e("onTouchEvent","onTouchEvent");returnmGesture.onTouchEvent(event);}

更多相关文章

  1. Android:Deprecated Thread methods are not supported
  2. android ImageView实现圆角(xml实现方法)
  3. 越过Android中布局文件中使用onClick属性的坑
  4. Android(安卓)复习_Service 一
  5. Android(安卓)keep screen on 方法
  6. android imageview设置图片的小问题
  7. Android打开系统相册的问题
  8. android的图片加载几种方法
  9. android 将文字转为为图片

随机推荐

  1. dva
  2. 嵌入式:我不是针对谁,我是说在座的Javaer都
  3. 戴耳机敲代码,我都听些啥?
  4. 外边距合并规则
  5. redux-saga
  6. 详解HDFS3.x新特性-纠删码
  7. 深入理解Java:内部类
  8. 超链接的lvha原则
  9. (不谈废话,只有干货)解决线程间协作问题的工
  10. 实不相瞒,我就是鹤岗的女婿~