本文整理了Java中android.graphics.Region.contains
方法的一些代码示例,展示了Region.contains
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Region.contains
方法的具体详情如下:
包路径:android.graphics.Region
类名称: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;
}
}
}
}
};
内容来源于网络,如有侵权,请联系作者删除!