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();
}
}
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();
}
}
相关文章推荐
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android ViewFlipper的使用(手势滑屏)
- Android中使用ViewFlipper进行手势切换实例
- android开发(8) 使用ViewFlipper来用手势切换画面
- Android开发中ViewFlipper和ViewSwitcher使用GestureDetector完成切换
- ViewFlipper和GestureDetector实现手势切换图片
- android开发(8) 使用ViewFlipper来用手势切换画面
- 手势检测实现相册的左右滑动(并加上移动与旋转的特效) 首先,activity_main.xml里,使用ViewFlipper组件(可使用动画控制多个组件之间的切换效果) <?xml version="
- Android手势使用ViewFlipper
- ViewFlipper实现图片动态切换、GestureDetector实现手势捕捉
- Android学习笔记_21_ViewFlipper使用详解 手势识别器
- 使用ViewFlipper实现图片自动切换,并支持手势滑动切换
- 用ViewFlipper和GestureDetector实现手势翻页的效果
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- ViewFlipper实现图片动态切换、GestureDetector实现手势捕捉
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用。
- 用ViewFlipper和GestureDetector实现手势翻页的效果
- 关于使用ViewFlipper实现手势滑动切换及其与ScrollView冲突的解决办法
- Android中的手势切换——使用ViewFlipper
- android ViewFlipper制作,OnGestureListener手势监听不灵敏问题