程序结构图:


ViewFliper中的代码

        
  1. 1.packagecom.scnu.mc.myviewfliper;
  2. 2.
  3. 3.importAndroid.app.Activity;
  4. 4.importandroid.os.Bundle;
  5. 5.importandroid.view.MotionEvent;
  6. 6.importandroid.widget.ViewFlipper;
  7. 7.
  8. 8.publicclassViewFliperextendsActivity{
  9. 9.
  10. 10.ViewFlipperviewFlipper=null;
  11. 11.floatstartX;
  12. 12.
  13. 13.@Override
  14. 14.publicvoidonCreate(BundlesavedInstanceState){
  15. 15.super.onCreate(savedInstanceState);
  16. 16.setContentView(R.layout.main);
  17. 17.
  18. 18.init();
  19. 19.}
  20. 20.
  21. 21.privatevoidinit(){
  22. 22.viewFlipper=(ViewFlipper)this.findViewById(R.id.viewFlipper);
  23. 23.}
  24. 24.
  25. 25.@Override
  26. 26.publicbooleanonTouchEvent(MotionEventevent){
  27. 27.switch(event.getAction()){
  28. 28.caseMotionEvent.ACTION_DOWN:
  29. 29.startX=event.getX();
  30. 30.break;
  31. 31.caseMotionEvent.ACTION_UP:
  32. 32.
  33. 33.if(event.getX()>startX){//向右滑动
  34. 34.viewFlipper.setInAnimation(this,R.anim.in_left2right);
  35. 35.viewFlipper.setOutAnimation(this,R.anim.out_left2right);
  36. 36.viewFlipper.showNext();
  37. 37.}elseif(event.getX()<startX){//向左滑动
  38. 38.viewFlipper.setInAnimation(this,R.anim.in_right2left);
  39. 39.viewFlipper.setOutAnimation(this,R.anim.out_right2left);
  40. 40.viewFlipper.showPrevious();
  41. 41.}
  42. 42.break;
  43. 43.}
  44. 44.
  45. 45.returnsuper.onTouchEvent(event);
  46. 46.}
  47. 47.
  48. 48.}

main.xml代码

        
  1. 1.<?xmlversion="1.0"encoding="utf-8"?>
  2. 2.<LinearLayoutxmlns:Android="http://schemas.android.com/apk/res/android"
  3. 3.Android:layout_width="fill_parent"android:layout_height="fill_parent"
  4. 4.Android:orientation="vertical">
  5. 5.<ViewFlipperAndroid:id="@+id/viewFlipper"
  6. 6.Android:layout_width="fill_parent"android:layout_height="fill_parent">
  7. 7.<!--第一个页面-->
  8. 8.<LinearLayoutAndroid:layout_width="fill_parent"
  9. 9.Android:layout_height="fill_parent"android:gravity="center">
  10. 10.<ImageViewAndroid:layout_width="wrap_content"
  11. 11.Android:layout_height="wrap_content"android:src="@drawable/a1"/>
  12. 12.</LinearLayout>
  13. 13.<!--第二个页面-->
  14. 14.<LinearLayoutAndroid:layout_width="fill_parent"
  15. 15.Android:layout_height="fill_parent"android:gravity="center">
  16. 16.<ImageViewAndroid:layout_width="wrap_content"
  17. 17.Android:layout_height="wrap_content"android:src="@drawable/a2"
  18. 18.Android:gravity="center"/>
  19. 19.</LinearLayout>
  20. 20.<!--第三个页面-->
  21. 21.<LinearLayoutAndroid:layout_width="fill_parent"
  22. 22.Android:layout_height="fill_parent"android:gravity="center">
  23. 23.
  24. 24.<ImageViewAndroid:layout_width="wrap_content"
  25. 25.Android:layout_height="wrap_content"android:src="@drawable/a3"
  26. 26.Android:gravity="center"/>
  27. 27.</LinearLayout>
  28. 28.<!--第四个页面-->
  29. 29.<LinearLayoutAndroid:layout_width="fill_parent"
  30. 30.Android:layout_height="fill_parent"android:gravity="center">
  31. 31.
  32. 32.<ImageViewAndroid:layout_width="wrap_content"
  33. 33.Android:layout_height="wrap_content"android:src="@drawable/a4"
  34. 34.Android:gravity="center"/>
  35. 35.</LinearLayout>
  36. 36.</ViewFlipper>
  37. 37.</LinearLayout>

4个动画效果的xml文件

in_left2right----从左到右进入屏幕

        
  1. 1.<?xmlversion="1.0"encoding="utf-8"?>
  2. 2.<setxmlns:Android="http://schemas.android.com/apk/res/android">
  3. 3.<translate
  4. 4.Android:duration="30"
  5. 5.Android:fromXDelta="-100%p"
  6. 6.Android:toXDelta="0"/>
  7. 7.</set>

in_right2left----从右至左进入屏幕

        
  1. 1.<?xmlversion="1.0"encoding="utf-8"?>
  2. 2.<setxmlns:Android="http://schemas.android.com/apk/res/android">
  3. 3.<translate
  4. 4.Android:duration="30"
  5. 5.Android:fromXDelta="100%p"
  6. 6.Android:toXDelta="0"/>
  7. 7.</set>

out_left2right----从左到右退出屏幕

        
  1. 1.<?xmlversion="1.0"encoding="utf-8"?>
  2. 2.<setxmlns:Android="http://schemas.android.com/apk/res/android">
  3. 3.<translate
  4. 4.Android:duration="30"
  5. 5.Android:fromXDelta="0"
  6. 6.Android:toXDelta="100%p"/>
  7. 7.</set>

out_right2left----从右至左退出屏幕

        
  1. 1.<?xmlversion="1.0"encoding="utf-8"?>
  2. 2.<setxmlns:Android="http://schemas.android.com/apk/res/android">
  3. 3.<translate
  4. 4.Android:duration="30"
  5. 5.Android:fromXDelta="0"
  6. 6.Android:toXDelta="-100%p"/>
  7. 7.</set>

注:fromXDelta和toXDelta代表控件相对应parent的偏移距离,个人理解是"100%p"代表控件向右跑到屏幕的外面,"-100%p"代表控件向左跑到屏幕的外部。下面附上个人理解的图。

更多相关文章

  1. android 时间滚动控件 底部弹出
  2. 【Android】常用控件及布局
  3. android实现简单左滑删除控件
  4. Android 屏幕亮度调节(2.0以后出现亮度自动调节)如何开启、关闭亮
  5. android上小圆点page控件
  6. Android获取屏幕高度及宽度
  7. Android中如何获取屏幕宽度和高
  8. -----------关于android屏幕保护---屏幕常亮---------屏幕解锁--
  9. Android之下获取屏幕分辨率的方法

随机推荐

  1. Android实现二维码扫描功能(三)-闪光灯控制
  2. AndroidStudio opencv(一)
  3. android关闭应用程序
  4. Android初级进阶之Shape
  5. android字体更换
  6. Myeclipse出现错误:Errors running builde
  7. Android之ListView的简单用法
  8. Unable to resolve target 'android-i'
  9. AndroidStudio上面最好用的插件
  10. Android(安卓)报错 “程序包R不存在...!”