面试题:View相关(事件分发)
发布日期:2021-05-14 18:01:22 浏览次数:18 分类:精选文章

本文共 5202 字,大约阅读时间需要 17 分钟。

Q1���MotionEvent������������������������������������������������������������

MotionEvent���Android������������������������������������������������������������������������������������������������

  • ACTION_DOWN���������������������������
  • ACTION_MOVE������������������������������
  • ACTION_UP������������������������������������
  • ���������������������������������������DOWN������������������������MOVE������������������UP���������������������������������������������������������������������������������������


    Q2���scrollTo()���scrollBy()������������

    • scrollTo()������������������������������������������������������������������������������������������������������������
    • scrollBy()���������������������������������������������������������������������������������������������������

    ���������������������������������������������������������


    Q3���Scroller���������������������������������������������������������

    Scroller��������������������������� scrollTo() ��� scrollBy()������������������������������������������������������������������������������������������������������������������������


    Q4���View������������������������

    View������������������������������������������������������

  • ������������������������������MotionEvent������������������������������������������View���
  • ���������������������������������������������Window������ViewGroup������������������View���
  • ���������������
    • dispatchTouchEvent���������������������������������
    • onInterceptTouchEvent���������������������������������
    • onTouchEvent������������������������
  • ������������������������������������������ViewGroup������������������������������


    Q5���������������View������������������

    View���������������������������������������������������������������������������������������

  • ������������������

    • ������������������onInterceptTouchEvent���������������������������������������
    • ���������������
      public boolean onInterceptTouchEvent(MotionEvent event) {
      boolean intercepted = false;
      int x = (int) event.getX();
      int y = (int) event.getY();
      switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
      intercepted = false;
      break;
      case MotionEvent.ACTION_MOVE:
      if (���������������������������) {
      intercepted = true;
      } else {
      intercepted = false;
      }
      break;
      case MotionEvent.ACTION_UP:
      intercepted = false;
      break;
      default:
      intercepted = false;
      break;
      }
      mLastXIntercept = x;
      mLastYIntercept = y;
      return intercepted;
      }
  • ������������������

    • ���������������������requestDisallowInterceptTouchEvent���������������������������������������
    • ���������������
      public boolean dispatchTouchEvent(MotionEvent event) {
      int x = (int) event.getX();
      int y = (int) event.getY();
      switch (event.getAction) {
      case MotionEvent.ACTION_DOWN:
      parent.requestDisallowInterceptTouchEvent(true);
      break;
      case MotionEvent.ACTION_MOVE:
      int deltaX = x - mLastX;
      int deltaY = y - mLastY;
      if (������������������������) {
      parent.requestDisallowInterceptTouchEvent(false);
      }
      break;
      case MotionEvent.ACTION_UP:
      break;
      default:
      break;
      }
      mLastX = x;
      mLastY = y;
      return super.dispatchTouchEvent(event);
      }

  • Q6���View������������������

    View������������������������������������������

  • measure���������������View���������������������
  • layout���������������View���������������������������
  • draw������������View���������������������
  • ���������������������

    • ViewRoot������performTraversals������������������performMeasure���performLayout���performDraw���
    • ������View���������������������onMeasure���onLayout���onDraw������������������������������

    Q7���MeasureSpec���������

    MeasureSpec���Android���������������������View���������������������������������������������������

  • EXACTLY���������������������������View������������������
  • AT_MOST���������������������������View���������������������������������View������������������
  • UNSPECIFIED������������������View������������������������������

  • Q8���onTouch()���onTouchEvent()���onClick()������������

    • onTouch()������������������������������������������View���onTouchEvent���������������
    • onTouchEvent()������������������MotionEvent������������������������������������������
    • onClick()������View���OnClickListener���������������������������������������

    onTouch���onTouchEvent������������������������������������onClick������������View���OnClickListener������������


    Q9���SurfaceView���View������������

    • SurfaceView���������������������������������������������������������������
    • View������������������������UI���������������������������������

    SurfaceView���������������������������������������View���������������������������UI���������


    Q10���invalidate()���postInvalidate()������������

    • invalidate()������������View���������������������������������
    • postInvalidate()������View���������������������������������������������������������������������������������������������

    ���������������������������������������������������Android���������������������������������������������������������

    上一篇:面试题:Drawable等资源
    下一篇:面试题:IPC(跨进程通信)

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月20日 07时45分34秒