获取布局android上imageview的位置
请帮助我获取布局上imageview的位置获取布局android上imageview的位置,android,layout,position,imageview,Android,Layout,Position,Imageview,请帮助我获取布局上imageview的位置 x = imageViewObject.getLeft(); y = imageViewObject.getTop(); 希望对你有帮助 位置意味着x和y以及高度和宽度 此布局是一个视图,该视图具有这些属性。在运行时,您可以使用 视图对象的左位置getleft() 视图对象的顶部位置getTop() 视图对象的右位置getRight() 视图对象的底部位置getBottom() 甚至你也可以用手机找到位置 getLocationOnScreen(i
x = imageViewObject.getLeft();
y = imageViewObject.getTop();
希望对你有帮助 位置意味着x和y以及高度和宽度
此布局是一个视图,该视图具有这些属性。在运行时,您可以使用 视图对象的左位置
getleft()
视图对象的顶部位置getTop()
视图对象的右位置getRight()
视图对象的底部位置getBottom()
甚至你也可以用手机找到位置
getLocationOnScreen(int[])
您可以将其与getLocationOnScreen(int[])
一起使用,下面的代码用于获取原始位置,我使用全局布尔变量移动了在onTouch
方法v.getX()
和…getY()中查找一次值
获取我的imageView
对象的值。我已经在设备上的apk文件上运行了该对象,它工作得非常好。希望这有帮助
joystick.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(moved){
moved = false;
xOrigin = v.getX();
yOrigin = v.getY();
mode.setText(Float.toString(xOrigin));
challenge.setText(Float.toString(yOrigin));
}
mode.setText(Float.toString(v.getX()));
challenge.setText(Float.toString(v.getY()));
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
xCoOrdinate = v.getX() - event.getRawX();
yCoOrdinate = v.getY() - event.getRawY();
//mode.setText(Float.toString(v.getX()));
//challenge.setText(Float.toString(v.getY()));
break;
case MotionEvent.ACTION_MOVE:
v.animate().x(event.getRawX() + xCoOrdinate).y(event.getRawY() + yCoOrdinate).setDuration(0).start();
if(v.getX() < xOrigin -50){
v.animate().x(xOrigin -50).setDuration(0).start();
}
else if(v.getX() > xOrigin +50) {
v.animate().x(xOrigin +50).setDuration(0).start();
}
if(v.getY() < yOrigin -50){
v.animate().y(yOrigin -50).setDuration(0).start();
}
else if(v.getY() > yOrigin +50) {
v.animate().y(yOrigin +50).setDuration(0).start();
}
break;
default:
v.setX(xOrigin);
v.setY(yOrigin);
mode.setText(Float.toString(xOrigin));
challenge.setText(Float.toString(yOrigin));
return false;
}
return true;
}
});
操纵杆.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
如果(移动){
移动=假;
xOrigin=v.getX();
yOrigin=v.getY();
mode.setText(Float.toString(xOrigin));
challenge.setText(Float.toString(yOrigin));
}
mode.setText(Float.toString(v.getX());
challenge.setText(Float.toString(v.getY());
开关(event.getActionMasked()){
case MotionEvent.ACTION\u DOWN:
xCoOrdinate=v.getX()-event.getRawX();
yCoOrdinate=v.getY()-event.getRawY();
//mode.setText(Float.toString(v.getX());
//challenge.setText(Float.toString(v.getY());
打破
case MotionEvent.ACTION\u移动:
v、 animate().x(event.getRawX()+xCoOrdinate).y(event.getRawY()+yCoOrdinate).setDuration(0).start();
if(v.getX()xOrigin+50){
v、 animate().x(xOrigin+50).setDuration(0).start();
}
如果(v.getY()yOrigin+50){
v、 动画();
}
打破
违约:
v、 setX(xOrigin);
v、 塞蒂(约里金);
mode.setText(Float.toString(xOrigin));
challenge.setText(Float.toString(yOrigin));
返回false;
}
返回true;
}
});
我想得到视图上的当前位置表示x和y的对应关系,这样我就可以从这个位置到那个位置设置动画。看看view类中可用的方法。对我来说不起作用。一切都归零。(与Button一起使用,而不是ImageView,但这不会有什么区别。)@mathheadinclouds对我也不适用。你找到工作了吗?还是没有解决办法?对我来说是0,但对我来说不是。我的图像位于RelativeLayout中,它与顶部的一个按钮相关,并与右侧对齐