通过头部跟踪移动安卓鼠标指针

时间:2015-06-02 08:35:59

标签: android android-ndk

我正在开发一个与android界面交互的应用程序 对于那些无法在移动设备上与他交手的人。

该算法基于头部跟踪,我解决了这个问题。

所以,我需要知道如何移动一个android指针,或者我是如何通过布局设置drawable或任何视图位置是否从另一个线程获得位置坐标。

观察:

  • 我从ndk(c ++到java)得到x和y位置,这是另一个 线。功能 - > public void sendPointerCoords(float x,float y) 使用runnable。

  • 我不能使用Canvas或表面视图,因为在我要去之后 使用头部跟踪手势实现点击。

代码:

public void sendPointerCoords(float x, float y) {
        // TODO Auto-generated method stub
        final float xPos=x;
        final  float yPos=y;

        Log.v(LOG_TAG,"This are the coords ["+x+", "+y+"]");
        runOnUiThread(new Runnable() 
        {
            public void run() 
            {
                //red pointer is an image view and here chrashed when I try to move
                /*red_pointer.setPivotX(xPos);
                red_pointer.setPivotY(yPos);*/

            }
        });![enter image description here][1]

我用谷歌搜索,但我找不到解决方案来解决我的需求。

faceTrackingThumbnail

1 个答案:

答案 0 :(得分:1)

如果你得到像这样的图像视图:

ImageView myImageView = (ImageView)findViewById(R.id.myImageViewId);

您可以使用Xml布局属性来获取它。

如果要更改其属性,则需要在活动中存储变量ImageView _myImageView并进行修改。像:

runOnUiThread(new Runnable()
{
   public void run()
   {
      _myImageView.setX(xPos);
      _myImageView.setY(yPos);
   }
});
}

必须更改图像视图位置并保持不变。如果您再次尝试查找ViewById,它将重置其值。