Android 安卓:如何在不触发点击的情况下收缩缩放(动作向下)
目前,我已经为我的绘图应用程序实现了一个缩放,效果非常好。只是几句话,让你知道我在说什么:Android 安卓:如何在不触发点击的情况下收缩缩放(动作向下),android,touch,zooming,usability,Android,Touch,Zooming,Usability,目前,我已经为我的绘图应用程序实现了一个缩放,效果非常好。只是几句话,让你知道我在说什么: setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent rawEvent) { WrapMotionEvent event = WrapMotionEvent.wrap(rawEvent);
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent rawEvent) {
WrapMotionEvent event = WrapMotionEvent.wrap(rawEvent);
// Handle touch events here...
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
drawSomethingHere();
case MotionEvent.ACTION_POINTER_DOWN:
startZoomingModeHere();
...
所以我想要的是:用一个手指画,用两个手指缩放。
问题是:在食指触地之前总是会触发一个动作向下事件。因此,每当我想缩放时,我的应用程序都会在缩放模式启动之前绘制一个点
有人知道如何解决这个问题吗?我想你应该等几毫秒再开始画图,因为不可能在同一毫秒内准确地画出两个手指 您可以等待一个布尔变量 布尔布尔指针向下=false
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
// Start a thread to call drawSomethingHere in 300 - 700 milliseconds
// if action_pointer_down haven’t been called.
new ThreadDraw().start();
case MotionEvent.ACTION_POINTER_DOWN:
boolean_pointer_down=true;
startZoomingModeHere();
....
//Method run in the thread
public void run(){
wait(300); //if the user didn't put more fingers in 300 ms he's not going to zoom
if (!boolean_pointer_down){
drawSomethingHere();
boolean_pointer_down = false;
}
}
我认为你们应该在开始画图之前等待几毫秒,因为不可能在同一毫秒内精确地放置两个手指 您可以等待一个布尔变量 布尔布尔指针向下=false
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
// Start a thread to call drawSomethingHere in 300 - 700 milliseconds
// if action_pointer_down haven’t been called.
new ThreadDraw().start();
case MotionEvent.ACTION_POINTER_DOWN:
boolean_pointer_down=true;
startZoomingModeHere();
....
//Method run in the thread
public void run(){
wait(300); //if the user didn't put more fingers in 300 ms he's not going to zoom
if (!boolean_pointer_down){
drawSomethingHere();
boolean_pointer_down = false;
}
}
解决方法如下:
这是我能做的最好的了。结果非常令人信服……这是一个想法。但是如果用户想要画画,他/她必须能够不等待就画画。使用您的代码,用户在绘制时会意识到一些延迟:/n这是一个想法。但是如果用户想要画画,他/她必须能够不等待就画画。使用您的代码,用户在绘图时会意识到一些延迟:/I面临相同的问题..您能否进一步详细说明解决方案我面临相同的问题..您能否进一步详细说明解决方案