最近在Android上面试了下手。做了一个日历。网上的日历都可以用手触摸拖动转换月份和年,小弟刚学,不知道实现,就在网上找了一些大侠的文章,学习后基本上实现了我要的效果。

public class DayCell extends View   implements GestureDetector.OnGestureListener {GestureDetector mGestureDetector;....public DayCell(Context context) {super(context);setFocusable(true);mGestureDetector = new GestureDetector(DayCell.this);//setLongClickable(true); }......@Overridepublic boolean onTouchEvent(MotionEvent event) {  return mGestureDetector.onTouchEvent(event); }  @Override  public boolean onDown(MotionEvent e) {    return true;//一定的返回true,如果不是好像没有反应。  }  @Override  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {    // 左    if (e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 200) {//移动的距离和速度      ...    } // 右    else if (e2.getX() - e1.getX() > 100 && Math.abs(velocityX) > 200) {      ...    }//上    else if (e1.getY() - e2.getY() > 100 && Math.abs(velocityY) > 200) {    ...    } // 下    else if (e2.getY() - e1.getY() > 100 && Math.abs(velocityY) > 200) {     ...    }    return true;  }  @Override  public void onLongPress(MotionEvent e) {      }  @Override  public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {    // TODO Auto-generated method stub    return false;  }  @Override  public void onShowPress(MotionEvent e) {      }  @Override  public boolean onSingleTapUp(MotionEvent e) {  ..    return true;  }}

主要的代码就上面,里面各个方法的作用网上的前辈们都写的很清楚 。有一点注意的就是onDown( MotionEvent e )一定的返回true。如果是在Activity那就还得实现 OnTouchListener接口。


更多相关文章

  1. Android(安卓)之 ActionBar返回按钮
  2. android 4中新增的日历处理相关API
  3. android定位的实现
  4. android 5.1 屏蔽MENU键 返回键唤醒系统
  5. android 4中新增的日历处理相关API
  6. android 4中新增的日历处理相关API
  7. android 4中新增的日历处理相关API
  8. Android学习(八) 打开Activity
  9. Android数据库操作查询中Cursor类的问题

随机推荐

  1. Android(安卓)DataBinding 快速入门
  2. Android版本更新【转】
  3. Is there any way to define a min and m
  4. android abd
  5. Android内置窗口
  6. Android(安卓)KEYCODE键值对应大全
  7. Android保存Log信息到本地文件
  8. 【Android】配置APK开发环境
  9. Compile Android on Fedora 15 X86_64
  10. Android(安卓)webview-tips