您的位置:首页 > 移动开发 > Android开发

ViewFlipper 与GestureDetector 手势使用

2014-04-17 15:02 399 查看
//继承GestureDetector.OnGestureListener
public class MainActivity extends Activity implements android.view.GestureDetector.OnGestureListener{
private GestureDetector gestureDetector = null;
private ViewFlipper mViewFlipper = null;
private ImageView mImageView;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
gestureDetector = new GestureDetector(this); // 声明检测手势事件

for (int i = 0; i < 14; i++) { // 添加图片源
mImageView = new ImageView(this);
// mImageView.setImageResource(mImgs[i]);
mImageView.setImageBitmap(mBitmap[i]);
mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
//将图片添加到ViewFlipper
mViewFlipper.addView(mImageView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
}

public boolean onTouchEvent(MotionEvent event) {
// 注册手势事件
return gestureDetector.onTouchEvent(event);
// //自动播放
// mViewFlipper.setAutoStart(true);
// mViewFlipper.setFlipInterval(5000);
// if(mViewFlipper.isAutoStart() && !mViewFlipper.isFlipping()){
// mViewFlipper.startFlipping();
// }
// 停止自动播放
// mViewFlipper.stopFlipping();
// mViewFlipper.setAutoStart(false);
}

// //手势事件
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// 从左向右滑动
if (e2.getX() - e1.getX() > 100) {
leftin(); //左进右出
return true;
// 从右向左滑动
} else if (e2.getX() - e1.getX() < -100) {
rightin(); //右进左出
return true;
}
return true;
}

private void leftin(){
// 向右滑动左侧进入的渐变效果
Animation rInAnim = AnimationUtils.loadAnimation(mActivity, R.anim.right_in);
// 向右滑动右侧滑出的渐变效果
Animation rOutAnim = AnimationUtils.loadAnimation(mActivity, R.anim.right_out);
mViewFlipper.setInAnimation(rInAnim);
mViewFlipper.setOutAnimation(rOutAnim);
mViewFlipper.showPrevious(); //上一页
}
private void rightin(){
// 向左滑动左侧进入的渐变效果
Animation lInAnim = AnimationUtils.loadAnimation(mActivity, R.anim.left_in);
// 向左滑动右侧滑出的渐变效果
Animation lOutAnim = AnimationUtils.loadAnimation(mActivity, R.anim.left_out);
mViewFlipper.setInAnimation(lInAnim);
mViewFlipper.setOutAnimation(lOutAnim);
mViewFlipper.showNext(); //下一页
}
-----------------------------------------------------------------

        System.gc(); //提醒系统及时回收内存

        

      protected void onDestroy() {

           //退出时清除进程

        android.os.Process.killProcess(android.os.Process.myPid());  

            super.onDestroy();

        }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息