小编use*_*408的帖子

Android多点触控和getActionMasked()

我有一些关于触摸事件掩盖的小问题.我在这里和其他地方看过很多东西,但我仍然对部分感到困惑.

1)event.getActionMasked()相同event.getAction() & MotionEvent.ACTION_MASK(它们似乎在三星S2和HTC Desire上)

2)上述两个命令是否会提供所有信息,而不仅仅是这些信息event.getAction(),或者它是否有所不同.

3)我编写了一段代码,简单地说明了触摸的位置和指针ID,或指针是否未被使用(此刻仅写入两次触摸).它似乎在上面提到的设备上正常工作,但是我知道如果没有完全正确的话,某些设备可以采取非常不同的行为.因此,我想知道以下是否正确并且将在所有设备上运行.

boolean pointer0down=false, pointer1down=false;
String st="", str0 ="", str1 ="";

public boolean onTouchEvent( MotionEvent event )
{

  if (event.getActionMasked()==MotionEvent.ACTION_UP
        ||event.getActionMasked()==MotionEvent.ACTION_POINTER_UP
        ||event.getActionMasked()==MotionEvent.ACTION_CANCEL)
   {
     if (event.getPointerId((event.getActionIndex()& MotionEvent.ACTION_MASK))==0)
        pointer0down=false;
     if (event.getPointerId((event.getActionIndex()& MotionEvent.ACTION_MASK))==1)
        pointer1down=false;
   }

  if (event.getActionMasked()==MotionEvent.ACTION_DOWN
    ||event.getActionMasked()==MotionEvent.ACTION_POINTER_DOWN)
  {
    if (event.getPointerId((event.getActionIndex()& MotionEvent.ACTION_MASK))==0)
       pointer0down=true;
    if (event.getPointerId((event.getActionIndex()& MotionEvent.ACTION_MASK))==1)
       pointer1down=true;
   }

 if (pointer0down)
    str0="\tx: " + event.getX(0) + "\ty: "+event.getY(0);
 else
    str0="\tNot down";

 if (pointer1down )
    str1="\tx: " + event.getX(1) + "\ty: "+event.getY(1);
 else
    str1="\tNot …
Run Code Online (Sandbox Code Playgroud)

android mask multi-touch

8
推荐指数
1
解决办法
5963
查看次数

在多个.cpp中包含相同的标头

我试图在一些其他.cpp文件中使用来自一个.h文件的数据(甚至函数),并且我得到一个建议链接错误的编译器区域.我知道这将非常简单,但我正在用它来伤害自己.我正在使用Xcode,但我不认为这是问题,它更有可能让我有点想!

我的版本更复杂,所以我将使用一个非常简单的例子来说明我正在寻找的东西.

如果我有一个头文件data1.h:

 int a,b; // etc
Run Code Online (Sandbox Code Playgroud)

然后是一个.cpp文件,比如setdataA.cpp:

 #include "data1.h"    
 void set_a(int numb){ a=1;} 
Run Code Online (Sandbox Code Playgroud)

然后是另一个,比如setdataB.cpp:

 #include "data1.h"    
 void set_b(int numb){ b=10;} 
Run Code Online (Sandbox Code Playgroud)

我想知道我做错了什么,也许我甚至应该尝试做这样的事情.

我甚至试图交换

#include "data1.h"  
Run Code Online (Sandbox Code Playgroud)

在setdataB.cpp中

#include "setdataA.h"
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作!

c c++ linker header

0
推荐指数
1
解决办法
147
查看次数

标签 统计

android ×1

c ×1

c++ ×1

header ×1

linker ×1

mask ×1

multi-touch ×1