android.graphics.Region.contains()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(150)

本文整理了Java中android.graphics.Region.contains方法的一些代码示例,展示了Region.contains的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Region.contains方法的具体详情如下:
包路径:android.graphics.Region
类名称:Region
方法名:contains

Region.contains介绍

暂无

代码示例

代码示例来源:origin: tarek360/RichPath

public static boolean isTouched(Path path, float x, float y) {
  Region region = new Region();
  RectF rectF = new RectF();
  path.computeBounds(rectF, true);
  region.setPath(path,
      new Region((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom));
  int offset = 10;
  return region.contains((int) x, (int) y)
      || region.contains((int) x + offset, (int) y + offset)
      || region.contains((int) x + offset, (int) y - offset)
      || region.contains((int) x - offset, (int) y - offset)
      || region.contains((int) x - offset, (int) y + offset);
}

代码示例来源:origin: ImmortalZ/StereoView

private boolean isContain(MotionEvent event) {
  rect.set(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom());
  region.set(rect);
  if (region.contains((int) event.getX(), (int) event.getY())) {
    return true;
  }
  return false;
}

代码示例来源:origin: iammert/MusicPlayerView

/**
 * This is detect when mButtonRegion is clicked. Which means
 * play/pause action happened.
 */
@Override public boolean onTouchEvent(MotionEvent event) {
 float x = event.getX();
 float y = event.getY();
 switch (event.getAction()) {
  case MotionEvent.ACTION_DOWN: {
   return true;
  }
  case MotionEvent.ACTION_UP: {
   if (mButtonRegion.contains((int) x, (int) y)) {
    if (onClickListener != null) onClickListener.onClick(this);
   }
  }
  break;
  default: break;
 }
 return super.onTouchEvent(event);
}

代码示例来源:origin: karonl/InDoorSurfaceView

private void clickMap(MotionEvent event) {
  if (adapter != null)
    for (PathUnit region : adapter.getPathUnit()) {
      if (region.region.contains((int) ((event.getX() - bx) / scale), (int) ((event.getY() - by) / scale))) {
        if (maplistener != null) maplistener.onClick(region);
      }
    }
}

代码示例来源:origin: mcxtzhang/AnimShopButton

@Override
public boolean onTouchEvent(MotionEvent event) {
  int action = event.getAction();
  switch (action) {
    case MotionEvent.ACTION_DOWN:
      if (isReplenish) {
        break;
      }
      //hint文字模式
      if (isHintMode) {
        onAddClick();
        return true;
      } else {
        if (mAddRegion.contains((int) event.getX(), (int) event.getY())) {
          onAddClick();
          return true;
        } else if (mDelRegion.contains((int) event.getX(), (int) event.getY())) {
          onDelClick();
          return true;
        }
      }
      break;
    case MotionEvent.ACTION_MOVE:
      break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
      break;
  }
  return super.onTouchEvent(event);
}

代码示例来源:origin: luhaoaimama1/zone-sdk

int getTouchedPath(int x, int y) {
  if (center.contains(x, y)) {
    return 0;
  } else if (up.contains(x, y)) {
    return 1;
  } else if (right.contains(x, y)) {
    return 2;
  } else if (down.contains(x, y)) {
    return 3;
  } else if (left.contains(x, y)) {
    return 4;
  }
  return -1;
}

代码示例来源:origin: InnoFang/Android-Code-Demos

@Override
public boolean onTouchEvent(MotionEvent event) {
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      int x = (int) event.getX();
      int y = (int) event.getY();
      if (mCircleRegion.contains(x, y)) {
        Toast.makeText(mCurrentContext, "Click", Toast.LENGTH_SHORT).show();
      }
      break;
  }
  return true;
}

代码示例来源:origin: GcsSloop/arc-seekbar

private boolean isInArcProgress(float px, float py) {
  float[] pos = {px, py};
  mInvertMatrix.mapPoints(pos);
  return mArcRegion.contains((int) pos[0], (int) pos[1]);
}

代码示例来源:origin: luhaoaimama1/zone-sdk

private void logRegion() {
  // ▼在屏幕中间添加一个圆
  Path circlePath = new Path();
  circlePath.addCircle(mViewWidth/2, mViewHeight/2, 300, Path.Direction.CW);
  // ▼将剪裁边界设置为视图大小
  Region globalRegion = new Region(0, 0, mViewWidth, mViewHeight/2);
  // ▼将 Path 添加到 Region 中
  Region circleRegion=new Region();
  circleRegion.setPath(circlePath, globalRegion);
  System.err.println("circleRegion"+(circleRegion.contains(mViewWidth/2,mViewHeight/2-100)?"包含":"不包含")+"圆心h-100");
  System.err.println("circleRegion"+(circleRegion.contains(mViewWidth/2,mViewHeight/2+100)?"包含":"不包含")+"圆心h+100");
  System.err.println("circleRegion"+(circleRegion.contains(mViewWidth/2,mViewHeight/2-400)?"包含":"不包含")+"圆心h-400");
}

代码示例来源:origin: bifan-wei/ReaderTextSelect

private boolean CanMoveForward(float Tounchx, float Tounchy) {
  Path p = new Path();
  p.moveTo(LastSelectShowChar.TopRightPosition.x, LastSelectShowChar.TopRightPosition.y);
  p.lineTo(getWidth(), LastSelectShowChar.TopRightPosition.y);
  p.lineTo(getWidth(), 0);
  p.lineTo(0, 0);
  p.lineTo(0, LastSelectShowChar.BottomRightPosition.y);
  p.lineTo(LastSelectShowChar.BottomRightPosition.x, LastSelectShowChar.BottomRightPosition.y);
  p.lineTo(LastSelectShowChar.TopRightPosition.x, LastSelectShowChar.TopRightPosition.y);
  return computeRegion(p).contains((int) Tounchx, (int) Tounchy);
}

代码示例来源:origin: luozhanming/LuckyBoard

@Override
public boolean onTouchEvent(MotionEvent event) {
  int x = (int) event.getX();
  int y = (int) event.getY();
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      if (mButtonRegion.contains(x, y)) {
        isButtonDown = true;
      }
      break;
    case MotionEvent.ACTION_UP:
      if (mButtonRegion.contains(x, y) && isButtonDown && enable) {
        if (mState == STATE_IDEL) {
          onGoButtonClick();
        } else if (mState == STATE_RUNNING) {
          onResultButtonClick();
        }
        isButtonDown = false;
      }
      break;
  }
  return true;
}

代码示例来源:origin: Ryfthink/TV-HorizontalListView

private int getPositionByXY(int x, int y) {
    int position = -1;
    for (int i = 0; i < getChildCount(); i++) {
      View view = getChildAt(i);
      Region region = new Region(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
      if (region.contains(x, y)) {
        return i + mFirstPosition;
      }
    }
    return position;
  }
};

代码示例来源:origin: bifan-wei/ReaderTextSelect

private boolean CanMoveBack(float Tounchx, float Tounchy) {
  Path p = new Path();
  p.moveTo(FirstSelectShowChar.TopLeftPosition.x, FirstSelectShowChar.TopLeftPosition.y);
  p.lineTo(getWidth(), FirstSelectShowChar.TopLeftPosition.y);
  p.lineTo(getWidth(), getHeight());
  p.lineTo(0, getHeight());
  p.lineTo(0, FirstSelectShowChar.BottomLeftPosition.y);
  p.lineTo(FirstSelectShowChar.BottomLeftPosition.x, FirstSelectShowChar.BottomLeftPosition.y);
  p.lineTo(FirstSelectShowChar.TopLeftPosition.x, FirstSelectShowChar.TopLeftPosition.y);
  return computeRegion(p).contains((int) Tounchx, (int) Tounchy);
}

代码示例来源:origin: bifan-wei/HwTxtReader

/**
 * @param TouchX
 * @param TouchY
 * @return 是否可以向前滑动
 */
private boolean CanMoveForward(float TouchX, float TouchY) {
  if (LastSelectedChar != null) {
    Path p = new Path();
    p.moveTo(LastSelectedChar.Left, LastSelectedChar.Top);
    p.lineTo(getWidth(), LastSelectedChar.Top);
    p.lineTo(getWidth(), 0);
    p.lineTo(0, 0);
    p.lineTo(0, LastSelectedChar.Bottom);
    p.lineTo(LastSelectedChar.Left, LastSelectedChar.Bottom);
    p.lineTo(LastSelectedChar.Left, LastSelectedChar.Top);
    return computeRegion(p).contains((int) TouchX, (int) TouchY);
  } else {
    return false;
  }
}

代码示例来源:origin: Vander-liu/HexagonRecyclerView

/**
 * 判断是否在多边形内
 *
 * @param event
 * @return
 */
private boolean isEventInPath(MotionEvent event) {
  RectF bounds = new RectF();
  //计算Path的边界
  mViewPath.computeBounds(bounds, true);
  //将边界赋予Region中
  mRegion.setPath(mViewPath, new Region((int) bounds.left, (int) bounds.top,
      (int) bounds.right, (int) bounds.bottom));
  //判断 当前的触摸点是否在这个范围内
  return mRegion.contains((int) event.getX(), (int) event.getY());
}

代码示例来源:origin: bifan-wei/HwTxtReader

/**
 * @param TouchX
 * @param TouchY
 * @return 是否可以向后滑动
 */
private boolean CanMoveBack(float TouchX, float TouchY) {
  if (FirstSelectedChar != null) {
    Path p = new Path();
    p.moveTo(FirstSelectedChar.Right, FirstSelectedChar.Top);
    p.lineTo(getWidth(), FirstSelectedChar.Top);
    p.lineTo(getWidth(), getHeight());
    p.lineTo(0, getHeight());
    p.lineTo(0, FirstSelectedChar.Bottom);
    p.lineTo(FirstSelectedChar.Right, FirstSelectedChar.Bottom);
    p.lineTo(FirstSelectedChar.Right, FirstSelectedChar.Top);
    return computeRegion(p).contains((int) TouchX, (int) TouchY);
  } else {
    return false;
  }
}

代码示例来源:origin: BCsl/CursorWheelLayout

/**
 * @param x the X coordinate of this event for the touching pointer
 * @param y the Y coordinate of this event for the touching pointer
 * @return Is touching the wheel
 */
private boolean isEventInWheel(float x, float y) {
  float[] pts = new float[2];
  pts[0] = x;
  pts[1] = y;
  mBgMatrix.mapPoints(pts);
  RectF bounds = new RectF();
  mWheelBgPath.computeBounds(bounds, true);
  mBgRegion.setPath(mWheelBgPath, new Region((int) bounds.left, (int) bounds.top, (int) bounds.right, (int) bounds.bottom));
  return mBgRegion.contains((int) pts[0], (int) pts[1]);
}

代码示例来源:origin: ljying/ChinaMap

/**
 * 判断该区域是否处于touch状态
 *
 * @param x 当前x
 * @param y 当前y
 * @return 是否处于touch状态
 */
boolean isTouched(int x, int y) {
  RectF r = new RectF();
  path.computeBounds(r, true);
  Region region = new Region();
  region.setPath(path, new Region((int) r.left, (int) r.top, (int) r.right, (int) r.bottom));
  return region.contains(x, y);
}

代码示例来源:origin: bifan-wei/HwTxtReader

Boolean downOnLeftSlider = computeRegion(getLeftSliderPath()).contains((int) mDown.x, (int) mDown.y);
Boolean downOnRightSlider = computeRegion(getRightSliderPath()).contains((int) mDown.x, (int) mDown.y);

代码示例来源:origin: NoEndToLF/ChinaMapView

@Override
  public void onClick(float x, float y) {
    //只有点击在某一个省份内才会触发省份选择接口
    for (ProvinceModel p:map.getProvinceslist()){
      for (Region region:p.getRegionList()){
        if (region.contains((int)x, (int)y)){
          //重置上一次选中省份的状态
          map.getProvinceslist().get(selectPosition).setSelect(false);
          map.getProvinceslist().get(selectPosition).setLinecolor(Color.GRAY);
          //设置新的选中的省份
          p.setSelect(true);
          p.setLinecolor(Color.BLACK);
          //暴露到Activity中的接口,把省的名字传过去
          onProvinceClickLisener.onChose(p.getName());
          invalidate();
          return;
        }
      }
      }
  }
};

相关文章