[英]Get position of imageview on layout android
请帮助我,我想在布局上获得 imageview 的位置。
x = imageViewObject.getLeft();
y = imageViewObject.getTop();
希望,对你有帮助!
您可以将其与getLocationOnScreen(int [])
在运行时,您可以获得每个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;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.