Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取布局android上imageview的位置_Android_Layout_Position_Imageview - Fatal编程技术网

获取布局android上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

请帮助我获取布局上imageview的位置

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中,它与顶部的一个按钮相关,并与右侧对齐