xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.viewflipperdemo.MainActivity" >
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></ViewFlipper> </RelativeLayout>

main.java

package com.example.viewflipperdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ViewFlipper;
/**
* ViewFlipper:
* 安卓系统自带的一个多页面管理控件,它可以实现子页面的自动切换
* 为ViewFlipper加入View:
* (1)在layout布局文件静态导入子View
* (2)动态导入:addView()方法
*
*案例实现:
*(1)利用ViewFlipper实现的图片轮播
*(2)支持手势滑动的ViewFlipper
*
*/
public class MainActivity extends Activity { private ViewFlipper flipper;
private int[] resId = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
private float startX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
flipper = (ViewFlipper) findViewById(R.id.flipper); /**
* (1)利用ViewFlipper实现的图片轮播
*/
//动态导入的方式为Flipper加入子view
for (int i = 0; i < resId.length; i++) {
flipper.addView(getImageView(i));
}
//为ViewFlipper去添加动画效果
flipper.setInAnimation(this,R.anim.left_in);
flipper.setOutAnimation(this,R.anim.left_out);
//设定ViewFlipper视图切换的时间 3s
flipper.setFlipInterval(3000);
//开始播放
flipper.startFlipping();
} @Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction()){
//手指落下
case MotionEvent.ACTION_DOWN:{
startX = event.getX(); break;
}
//手指滑动
case MotionEvent.ACTION_MOVE:{
//向右滑动
if(event.getX()-startX>=100){
flipper.setInAnimation(this,R.anim.left_in);;
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showPrevious();
}
//向左滑动
if(startX-event.getX()>=100){
flipper.setInAnimation(this,R.anim.right_in);;
flipper.setOutAnimation(this, R.anim.right_out);
flipper.showNext();
}
break;
}
//手指抬起
case MotionEvent.ACTION_UP:{
break;
}
} return super.onTouchEvent(event);
}
private View getImageView(int res){
ImageView image = new ImageView(this);
image.setBackgroundResource(resId[res]);
return image;
} }

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. Educational Codeforces Round 3 E (609E) Minimum spanning tree for each edge

    题意:一个无向图联通中,求包含每条边的最小生成树的值(无自环,无重边) 分析:求出这个图的最小生成树,用最小生成树上的边建图 对于每条边,不外乎两种情况 1:该边就是最小生成树上的边,那么答案显然 2 ...

  2. opencv 在工业中的应用:圆孔定位

    在工业中产品或者夹具上经常有圆形孔,我们可以利用这些孔来对产品或者夹具进行定位.我用OPENCV写了个DEMO 程序,介绍如下: (1)首先点击打开图像按钮打开一幅图像 (2)进行一些参数设置 (3) ...

  3. Js 与 TextArea

    当给一个js变量赋值一个有换行的值得时候,就会报错: <!DOCTYPE HTML> <html> <head> <script src="http ...

  4. MFC消息映射机制

    1.MFC应用框架主要类之间的关系 MFC自动生成的框架中重要的类有:C-App.CMainFrame.C-Doc和C-View. 其他的类如CClassView.CFileView等都是在框架窗口( ...

  5. Cordova CrossWalk

    http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/cordova-2-cordovabarcodescanner/ 军训结束后,同学们 ...

  6. Esper系列(十三)Splitting and Duplicating Streams

    功能:将同一个事件流分发到其它的事件流中. 格式: 1  ; i < events.length; i++) {   78              EventBean event = even ...

  7. 常用Raspberry Pi周边传感器的使用教程

    在Raspberry Pi 的使用和开发过程中,你可能时常需要一些硬件和传感器等来支持你的开发工作,例如,加入一个超声波测距的模块来让你的Raspberry Pi具备测距功能,加入一个测温模块以实现测 ...

  8. Java 的集合框架

    Java集合框架被设计成要满足以下几个目标. 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的. 该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一 ...

  9. 大公司最喜欢问的Java集合类面试题

    看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...

  10. 配置nginx,支持php的pathinfo路径模式

    nginx模式默认是不支持pathinfo模式的,类似index.php/index形式的url会被提示找不到页面.下面的通过正则找出实际文件路径和pathinfo部分的方法,让nginx支持path ...