【问题标题】:android , moving view in linearlayoutandroid,线性布局中的移动视图
【发布时间】:2017-05-11 18:42:48
【问题描述】:

我做了一个线性布局,它包含一些图像视图。当我使用(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 );
        }
    }
}

这就是我移动它的方式。

【问题讨论】:

  • 我认为最好使用 RealiveLayout 而不是 LinearLayout,以获得屏幕上视图的绝对位置,您可以使用 View.getLocationOnScreen()。
  • 默认情况下,视图是按照它们在布局中声明的顺序绘制的,所以前面的视图出现在后面的视图后面。您可以通过调用 View.bringToFront() 来更改它
  • @miibpa 但我几乎无法更改为相对布局。在屏幕上获取位置也返回 0,0。 :(
  • @bladecoder 我试试你说的,但它仍然落后......

标签: android animation android-linearlayout move setx


【解决方案1】:

什么时候你试图调用getX()?这可能需要调查:View getX() and getY() return 0.0 after they have been added to the Activity

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

【讨论】:

    【解决方案2】:

    我刚刚想通了。

    我使用相对布局,然后将线性布局设置为匹配父级。用线性布局设计背景后,我在线性布局之后和相对布局内部定义了一个图像视图,然后在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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多