我正在开发一个与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]
我用谷歌搜索,但我找不到解决方案来解决我的需求。
答案 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,它将重置其值。