xml:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingBottom="@dimen/activity_vertical_margin"
  6. android:paddingLeft="@dimen/activity_horizontal_margin"
  7. android:paddingRight="@dimen/activity_horizontal_margin"
  8. android:paddingTop="@dimen/activity_vertical_margin"
  9. tools:context="com.example.viewflipperdemo.MainActivity" >
  10. <ViewFlipper
  11. android:id="@+id/flipper"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. ></ViewFlipper>
  15.  
  16. </RelativeLayout>

main.java

  1. package com.example.viewflipperdemo;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.MenuItem;
  7. import android.view.MotionEvent;
  8. import android.view.View;
  9. import android.widget.ImageView;
  10. import android.widget.ViewFlipper;
  11. /**
  12. * ViewFlipper:
  13. * 安卓系统自带的一个多页面管理控件,它可以实现子页面的自动切换
  14. * 为ViewFlipper加入View:
  15. * (1)在layout布局文件静态导入子View
  16. * (2)动态导入:addView()方法
  17. *
  18. *案例实现:
  19. *(1)利用ViewFlipper实现的图片轮播
  20. *(2)支持手势滑动的ViewFlipper
  21. *
  22. */
  23. public class MainActivity extends Activity {
  24.  
  25. private ViewFlipper flipper;
  26. private int[] resId = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
  27. private float startX;
  28. @Override
  29. protected void onCreate(Bundle savedInstanceState) {
  30. super.onCreate(savedInstanceState);
  31. setContentView(R.layout.activity_main);
  32. flipper = (ViewFlipper) findViewById(R.id.flipper);
  33.  
  34. /**
  35. * (1)利用ViewFlipper实现的图片轮播
  36. */
  37. //动态导入的方式为Flipper加入子view
  38. for (int i = 0; i < resId.length; i++) {
  39. flipper.addView(getImageView(i));
  40. }
  41. //为ViewFlipper去添加动画效果
  42. flipper.setInAnimation(this,R.anim.left_in);
  43. flipper.setOutAnimation(this,R.anim.left_out);
  44. //设定ViewFlipper视图切换的时间 3s
  45. flipper.setFlipInterval(3000);
  46. //开始播放
  47. flipper.startFlipping();
  48. }
  49.  
  50. @Override
  51. public boolean onTouchEvent(MotionEvent event) {
  52. // TODO Auto-generated method stub
  53. switch(event.getAction()){
  54. //手指落下
  55. case MotionEvent.ACTION_DOWN:{
  56. startX = event.getX();
  57.  
  58. break;
  59. }
  60. //手指滑动
  61. case MotionEvent.ACTION_MOVE:{
  62. //向右滑动
  63. if(event.getX()-startX>=100){
  64. flipper.setInAnimation(this,R.anim.left_in);;
  65. flipper.setOutAnimation(this, R.anim.left_out);
  66. flipper.showPrevious();
  67. }
  68. //向左滑动
  69. if(startX-event.getX()>=100){
  70. flipper.setInAnimation(this,R.anim.right_in);;
  71. flipper.setOutAnimation(this, R.anim.right_out);
  72. flipper.showNext();
  73. }
  74. break;
  75. }
  76. //手指抬起
  77. case MotionEvent.ACTION_UP:{
  78. break;
  79. }
  80. }
  81.  
  82. return super.onTouchEvent(event);
  83. }
  84. private View getImageView(int res){
  85. ImageView image = new ImageView(this);
  86. image.setBackgroundResource(resId[res]);
  87. return image;
  88. }
  89.  
  90. }

Android_ViewFlipper的更多相关文章

  1. android_viewFlipper(一)

    需要注意的地方已在代码中表明 package cn.com.sxp; import android.app.Activity; import android.os.Bundle; import and ...

  2. android 基本控件使用

    http://tech.it168.com/a2012/0321/1327/000001327704.shtml Android_ListView_用代码控制ListView的位置 有三种方法 mli ...

随机推荐

  1. java jvm学习笔记九(策略文件)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8271407 课程源码:http://download.csdn.net/detail ...

  2. BinaryReader和BinaryWriter的leaveOpen参数 z

    在.NET 4.5后,微软为BinaryWriter和BinaryReader类型的构造函数中加入了leaveOpen参数,当该参数为true后,BinaryReader或者BinaryWriter关 ...

  3. WebDriver运行异常列表

    1. WebDriverException: Component returned failure code: 0x804b000a 这个异常通常是因为在navigate到url时,丢失了http,务 ...

  4. sublime3安装python插件 -- SublimeCodeIntel

    先装Package Control,类似pip的一个索引安装工具. 1.http://sublime.wbond.net/Package%20Control.sublime-package 2.sub ...

  5. vs2013下git的使用

    一.将VS2013项目托管到Git 现在的开源项目越来越多,我们会注意到这些开源项目大多共享在GitHub上面,包括微软开源的项目也在Github上,当然,如果你用过Git后,会发现Git确实不错,其 ...

  6. sublime Text2.0.2注册码

    ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC ...

  7. MVC模式 - 理解J2EE模式

        MVC模式Model-View-Controller头字母的缩写,中文翻译为“模型-视图-控制器” 模式(或者模型).该模式把一个GUI应用划分 业务逻辑处理(M),画面表示(V),控制(C) ...

  8. 【原创】linux命令bc使用详解

    最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: echo "obase=10;ibase=16;CFFF" | bc 用完以后就对bc进行了进一步的了解,  ...

  9. Serach

    1.二分查找 public class BubbleSort { public static int binarySerach(int[] a,int value){ int low=0; int h ...

  10. [坑]c#中double转字符串精度丢失问题记录

    在项目遇到了一个比较大的double值,然后出现了一些意想不到的状况: double b=1141.161994934082; b.ToString();//'1141.16199493408' 然后 ...