[请帮助我,我想在布局上获取imageview的位置。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8wNXRwWi5wbmcifQ==” alt =“在此处输入图像描述”>
您可以将其与getLocationOnScreen(int [])
一起使用
x = imageViewObject.getLeft();
y = imageViewObject.getTop();
希望,对您有帮助!
在运行时,您可以通过以下方式获取每个View
对象(也包括Layouts
)的位置
视图对象getleft()
的左位置
视图对象getTop()
的顶部位置
查看对象的正确位置getRight()
视图对象getBottom()
的底部位置
即使您可以通过以下方式获得位置
getLocationOnScreen(int [] )
位置的含义是x和y以及高度和宽度?
此布局是一个视图,该视图具有这些属性。
下面的代码对我有用,以获得原始位置,我使用全局布尔变量“ moved”在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;
}
});