0

我做了一个线性布局,它包含一些图像视图。当我使用(set X(view.get x + 10))功能移动一个时,它会移动......但它会移动到其他视图后面。视图变得隐藏。

另一个问题是当我得到视图的 X 和 Y 时,它总是 0,0。但视图位于屏幕中间。我该怎么办???我应该放弃线性布局吗?

if(wichmov == "right" ){
    if(martin.getX() < width){
        martin.setX(martin.getX()+ deltax);
    }
    else if(wichmov == "left"){
        if(martin.getX() > 0){
            martin.setX(martin.getX()- deltax );
        }
    }
}

这就是我移动它的方式。

4

2 回答 2

0

您何时尝试调用 getX()?这可能需要研究: View getX() 和 getY() 在添加到 Activity 后返回 0.0

如果您在 onCreate 中进行调用,它将为零。

于 2017-05-11T19:25:52.013 回答
0

我刚刚想通了。

我使用相对布局,然后将线性布局设置为匹配父级。用线性布局设计背景后,我在线性布局之后和相对布局内部定义了一个图像视图,然后在Java中,我将它的位置设置在我想要的确切位置(特殊框的前面我希望它移动的线性布局),以及它的宽度和高度。

以下代码将帮助您将视图放置在您想要的屏幕的确切位置,并设置其宽度和高度:

DisplayMetrics metrics = this.getResources().getDisplayMetrics(); //getting screen size
width = metrics.widthPixels;
height = metrics.heightPixels;

view.setX(width *5/8); //setting the place
view.setY(height/4);

LayoutParams para = view.getLayoutParams(); //set size of view
para.height = (int) (height/2);
para.width = (int) (width/4);
view.setLayoutParams(para);
于 2017-05-13T10:15:45.277 回答