一个多页面管理控件,可以实现子界面的自动切换
为ViewPager加入View
- 静态导入
在layout布局文件中直接导入
<ViewFlipper>
ImageView1
ImageView2
.....
</ViewFlipper>
2.动态导入:addView()
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ViewFlipper
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/flipper"></ViewFlipper>
</LinearLayout>
MainActivity.java
public class MainActivity extends ActionBarActivity {
private ViewFlipper flipper;
private float startX;
private int[]resId={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4,};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper=(ViewFlipper) findViewById(R.id.flipper);
//动态导入的方式为ViewFlipper加入子View
for(int i=0;i<resId.length;i++){
flipper.addView(getImageView(resId[i]));
}
}
//自定义函数,使得返回值为ImageView的形式
private ImageView getImageView(int resId){
ImageView Image=new ImageView(this);
Image.setBackgroundResource(resId);//使得图片铺满整个屏幕
//Image.setImageResource(resId);
return Image;
}
利用ViewFlipper实现图片轮播
//为ViewFlipper添加进入的动画效果
//flipper.setInAnimation(this, resourceID);
//为ViewFlipper添加退出的动画效果
//flipper.setOutAnimation(this, resourceID);
//为ViewFlipper设定视图切换的时间间隔
// flipper.setFlipInterval(3000);
// flipper.startFlipping();//让动画动起来,还有stopFlipping()方法
- 手势滑动的监听处理
@Override
public boolean onTouchEvent(MotionEvent event) {
//获得触发事件的动作
switch (event.getAction()) {
//手指落下
case MotionEvent.ACTION_DOWN:{
startX=event.getX();//获得横向坐标x轴的值作为起始点的坐标
break;
}
//手指滑动,需判断是向左滑动还是向右滑动
case MotionEvent.ACTION_MOVE:{
//向右滑动看前一页
if(event.getX()-startX>100){
//动画效果:从左边淡入淡出
//flipper.setInAnimation(this, resourceID);
//动画效果:从右边淡入淡出
//flipper.setOutAnimation(this, resourceID);
//显示前一页
flipper.showPrevious();
}
//向左滑动看前一页
if(startX-event.getX()>100){
//动画效果:从左边淡入淡出
//flipper.setInAnimation(this, resourceID);
//动画效果:从左边淡入淡出
//flipper.setOutAnimation(this, resourceID);
//显示后一页
flipper.showNext();
}
break;
}
//手指离开
case MotionEvent.ACTION_UP:{
break;
}
}
return super.onTouchEvent(event);
}
}