ViewFlipper实现屏幕切换动画效果

一、使用ViewFlipper实现图片轮播

ViewFlipper:
1.功能:Android系统自带的一个多页面管理控件,它可以实现子界面的自动切换
2.为ViewFlipper导入View:
(1)静态导入:例如:在组件中增加,这种方式比较死板不推荐使用
(2)动态导入:获取ViewFlipper组件后使用addView()方法实现,
例如:flipper.addView(getImageView(R.drawable.pic1))
3.ViewFlipper常用方法:如图
4.实例:使用ViewFlipper实现图片轮播
第一步:在资源文件夹下建立文件夹,且创建图片淡入淡出时的效果xml文件。
第二步:在主布局文件中加入ViewFlipper组件,并在主活动文件中获取组件。
第三步:创建int类型数组文件,添加所要展示图片的Id,并在onCreate方法中动态为ViewFlipper加入子View,使用for循环调用以图片id为参数的创建并返回image的方法。
第四步:所调用的方法中需使用image.setBackgroundResource(resId);的方式设置图片显示形式,保证全屏显示。
第五步:设置ViewFlipper常用方法,例如:flipper.setInAnimation(this,R.anim.left_out);并调用flipper.startFlipper();让动画运行起来。


二、支持手势滑动的ViewFlipper

监视手势滑动事件的处理
// A.2声明记录变量,因为是横向滑动故只考虑X坐标。
private float startX;

public boolean onTouchEvent(MotionEvent event)
{
switch (event.getAction()){
// 手指点到屏幕上,手指落下
case MotionEvent.ACTION_DOWN:{
// A.1记录刚开始手指落下的起始坐标
// A.3获得横向坐标的值
startX = event.getX();
break;
}
// 手指滑动
case MotionEvent.ACTION_MOVE:{
// B.1判断向左还是向右滑
// B.2向右滑动是看前一页,100是指像素,相当于改写它的动画效果
if (event.getX() - startX > 100){
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showPrevious();// 显示前一页
}
// B.3向左滑动看后一页
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);
}

你可能感兴趣的:(Android初学)