[英]How can I stop making the button leaves the screen when I move it?
当我触摸它时,我的手指 position 后面有一个按钮,但是如果我将手指放在屏幕边缘,按钮将在屏幕之外,我如何检查按钮是否在屏幕之外,因为我不想要按钮离开屏幕。
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent event) {
if (view.getId() == R.id.img_view) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
view.setX(event.getRawX() + dX);
view.setY(event.getRawY() + dY);
}
}
return true;
}
查看如何测量整个屏幕
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int scrHeight = displayMetrics.heightPixels;
int scrWidth = displayMetrics.widthPixels;
那么setX
方法设置的值不能高于 touch position + 拖动视图的宽度, setY
不能高于 touch position + 拖动视图的高度
int xToSet = event.getRawX() + dX;
if (xToSet + draggedView.getMeasuredWidth() > scrWidth)
xToSet = scrWidth - draggedView.getMeasuredWidth();
view.setX(xToSet);
int yToSet = event.getRawY() + dY;
if (yToSet + draggedView.getMeasuredHeight() > scrHeight)
yToSet = scrHeight - draggedView.getMeasuredHeight();
view.setY(yToSet);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.