【发布时间】:2016-05-19 10:17:10
【问题描述】:
我正在为通过 android 上的算法绘制的图形创建一个简单的 UI,您可以在其中触摸屏幕的某个部分以在屏幕上生成随机点。我的主要问题是是否可以将屏幕分成 4 个象限并识别何时触摸这些象限?
【问题讨论】:
标签: java android android-layout user-interface android-fragments
我正在为通过 android 上的算法绘制的图形创建一个简单的 UI,您可以在其中触摸屏幕的某个部分以在屏幕上生成随机点。我的主要问题是是否可以将屏幕分成 4 个象限并识别何时触摸这些象限?
【问题讨论】:
标签: java android android-layout user-interface android-fragments
RelativeLayout root = (RelativeLayout) findViewById(R.id.root);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
final int screenWidth = size.x;
final int screenHeight = size.y;
root.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getX() < screenWidth / 2) {
if (event.getY() < screenHeight / 2) {
// you are 1. area
} else {
// you are 2. area
}
} else {
if (event.getY() < screenHeight / 2) {
// you are 3. area
} else {
// you are 4. area
}
}
}
return false;
}
});
【讨论】:
您可以获取屏幕的位置和大小并轻松计算。 这个函数来获取触摸的位置
//function to take the position of touch
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = event.getX();
int y = event.getY();
return true;
}
//function to get screen size
private void setScreenSize() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);//need context
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
}
【讨论】: