如何在屏幕的随机位置放置线性布局?

时间:2012-11-25 12:35:30

标签: android layout

我的要求非常简单:我只是想在屏幕的随机位置显示一些文字。

我一直在期待,正如我用过的那样:

int x = r.nextInt(width - layout.getWidth()); 

int y = r.nextInt(height - layout.getHeight()); 

我的布局完全适合屏幕。

不幸的是,我的文字有时位于屏幕右侧,并以多行显示!

这是我的代码

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

    layout.addView(clock);
    layout.addView(txtView);

    Random r = new Random();    
    int x = r.nextInt(width - layout.getWidth());
    int y = r.nextInt(height - layout.getHeight());

    layout.setPadding(x, y, 0, 0);
    setContentView(layout);

2 个答案:

答案 0 :(得分:1)

使用RelativeLayout作为容器,而不是LinearLayout,因为这是专为此设计的。

答案 1 :(得分:0)

我遇到的最大问题是

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);

返回一个值,包括top statusBar(或通知,不知道如何调用它)和底部的软件按钮。

解决方案是在背景中创建一个虚拟布局并进行测量。