怎么实现Android主页面的左右拖动效果。其实实现起来很简单,就是使用ViewFlipper来将您要来回拖动的View装在一起,然后与GestureDetector手势识别类来联动,确定要显示哪个View,加上一点点动画效果即可。

JAVA

public class TestFlip extends Activity implements OnGestureListener {private ViewFlipper flipper;private GestureDetector detector;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);detector = new GestureDetector(this);flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper01);flipper.addView(addView(R.layout.layout1));flipper.addView(addView(R.layout.layout2));flipper.addView(addView(R.layout.layout3));flipper.addView(addView(R.layout.layout4));}private View addView(int layout) {LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = inflater.inflate(layout, null);return view;}@Overridepublic boolean onTouchEvent(MotionEvent event) {return this.detector.onTouchEvent(event);}@Overridepublic boolean onDown(MotionEvent e) {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {if (e1.getX() - e2.getX() > 120) {this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));this.flipper.showNext();return true;} else if (e1.getX() - e2.getX() < -120) {this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));this.flipper.showPrevious();return true;}return false;}@Overridepublic void onLongPress(MotionEvent e) {}@Overridepublic boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {return false;}@Overridepublic void onShowPress(MotionEvent e) {}@Overridepublic boolean onSingleTapUp(MotionEvent e) {return false;}}

XML

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><ViewFlipper android:id="@+id/ViewFlipper01"android:layout_width="fill_parent" android:layout_height="fill_parent"></ViewFlipper></LinearLayout>


更多相关文章

  1. Android(安卓)Activity间的过渡动画
  2. [android] toast解析
  3. 动手学Android之九——列表没那么简单
  4. 使用ScrollView实现滚动效果
  5. 历史最牛 多页切换TabHost,给大家参考。
  6. Android里五种 Toast方式
  7. Android电子书翻页效果实现
  8. Android(安卓)仿微信对话列表滑动删除效果
  9. android画出图片阴影!!!!!!!!!!!!!!

随机推荐

  1. Android下Entity封装工具类
  2. Android WebView 调用React Js 代码
  3. Android studio无法修改桌面的图标(已解决
  4. 使用 Jetpack Security 在 Android(安卓)
  5. android makefile and build system分析
  6. Android GUI编程模型(MVC设计模式)
  7. Android消息机制底层原理
  8. Android实现 图表 绘制和展示
  9. Android 横竖屏切换生命周期
  10. Android 多媒体开发-音频