我正在使用从视图扩展的自定义视图尝试我的第一个游戏,因为它只是一个背景图像,可以通过拖动ACTION_Move进行平移。
它还有一个在画布上绘制的缩放图像,当在该区域上发生ACTION_UP时,会注册放大并放大图像。
我现在遇到的问题是虽然拖动效果很好,ontouch函数返回true,但ACTION_UP非常敏感,单次触摸执行ACTION_UP case语句中的代码几百次。而不是仅仅将缩放比例增加10%,它会迅速缩放到100%。
如果我对函数返回false,则每次触摸缩放通常会达到10%,但如前面的帖子中所述,该函数必须返回true才能让ACTION_MOVE响应。
我尝试过的事情
答案 0 :(得分:0)
您可以尝试使用布尔变量来控制缩放,例如:
private boolean zoom = true;
final Handler handler = new Handler();
// ACTION_UP
if(zoom) {
doZoom();
zoom = false;
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
zoom = true;
}
}, 100); // Delay 100 ms, adjust for ideal zoom speed
现在它不会再缩放,直到100ms延迟完成。