package com.example.viewflipperdemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
private ViewFlipper viewFlipper;
//图片资源数组
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.main);
viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
// 使用动态导入的方式为ViewFlipper加入子View
for (int i = 0; i < resId.length; i++) {
viewFlipper.addView(getImageView(resId[i]));
}
// 设置进来和出去的动画效果及切换的间隔时间
// viewFlipper.setInAnimation(this, R.anim.left_in);
// viewFlipper.setOutAnimation(this, R.anim.left_out);
// viewFlipper.setFlipInterval(3000);
// 开始播放
// viewFlipper.startFlipping();
}
// 监控手势滑动
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
// 手指落下,点到了屏幕上
case MotionEvent.ACTION_DOWN:
startX = event.getX();
break;
// 手指滑动
case MotionEvent.ACTION_MOVE:
break;
// 手指离开
case MotionEvent.ACTION_UP:
// 向右滑动,看前一页
if (event.getX() - startX > 100) {
viewFlipper.setInAnimation(this, R.anim.left_in);
viewFlipper.setOutAnimation(this, R.anim.left_out);
// 显示前一页
viewFlipper.showPrevious();
} else
// 向左滑动,显示后一页
if (startX - event.getX() > 100) {
viewFlipper.setInAnimation(this, R.anim.right_in);
viewFlipper.setOutAnimation(this, R.anim.right_out);
// 显示后一页
viewFlipper.showNext();
}
break;
default:
break;
}
return super.onTouchEvent(event);
}
// 获取图片并生成ImageView
private ImageView getImageView(int resId) {
ImageView image = new ImageView(this);
// image.setImageResource(resId);
// 全屏展示图片
image.setBackgroundResource(resId);
return image;
}
}
Android程序:使用ViewFlipper实现屏幕切换动画及手势滑动切换功能
最新推荐文章于 2021-12-04 19:50:53 发布