使用下面的方法触发android的触屏事件。
需要辨识中心触屏,怎么样判断用户触摸了屏幕的中间位置?
@Override
public boolean onTouch(View v, MotionEvent mev) {
int width = v.getWidth();
int height = v.getHeight();
float x = mev.getX();
float y = mev.getY();
String msg;
if (x < width / 2) {
if (y < height / 2)
msg = "Top left quarter";
else
msg = "Bottom left quarter";
} else {
if (y < height / 2)
msg = "Top right quarter";
else
msg = "Bottom right quarter";
}
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
return false;
}
你这是将屏幕分为四块,要想"触摸了屏幕的中间位置"
设中心点坐标point(cX,cY)
那么cX = width/2;cY = height/2;
理论上说这个点是无穷小的,因为它就是一个点
要想触摸就得给他一个面,而不是一个点,需加个偏移量,例如,这个点左右50
offset = 50;//可调节数值
只要你那个onTouch中的x 与 y
只要满足
cX+offset>x>cX-offset &&
cY+offset>y>cY-offset
就落到了中间指定的区域,既可视为点击了中心位置
可用笔在纸上画画看
另外,手指按屏幕是一个"大点",android只是用一种算法,根据面积选择合适的中心点做为你那个 MotionEvent的坐标,"很难"按到你那个点,换成按区域就好了