在Android中检测滑动区域
问题描述:
在我使用AndEngine的游戏应用程序中,我试图检测按钮上的滑动动作Sprite在手指放在按钮Sprite上时放大按钮,并将缩放比例设置回1.0f当手指滑过雪碧时。含义:在Android中检测滑动区域
- 手指按住外按钮区域
- 扫过按钮(和按钮大小时),但保持手指按住
- 继续刷卡开关按钮和按键可以追溯到原单的规模。
我尝试以下操作:
myButton = new Sprite(posX, posY, resourcesManager.rightButtonRegion, vbom) {
@Override
public boolean onAreaTouched(final TouchEvent pAreaTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch (pAreaTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
this.setScale(1.25f);
break;
case TouchEvent.ACTION_UP:
this.setScale(1.0f);
break;
case TouchEvent.ACTION_MOVE:
this.setScale(1.0f);
break;
case TouchEvent.ACTION_OUTSIDE:
this.setScale(1.0f);
break;
}
return true;
}
};
但是,如果我开始刷卡按钮之外,并提出我的手指在按键按钮的大小无放大。欣赏任何指导如何实现这一效果。如果有一个使用SurfaceView的非Andengine解决方案,我也很欣赏这方面的观点。
答
您只能在TouchEvent.ACTION_DOWN
上设置比例。当您滑入您的触摸区域时,它不会注册ACTION_DOWN
,因为您没有按下您所在的区域,而是刚刚进入该区域。如果您的触摸顺序不是ACTION_DOWN
,也许您可以在第一次进入该区域时放入一张支票,用于放大您的case TouchEvent.ACTION_MOVE:
。
如果这不起作用,您可以使用诸如onGenericMotionEvent(MotionEvent)
之类的东西来传递其他类型的动作事件信息。