2

我的要求很简单:我只想在屏幕的任意位置显示一些文本。

我期待,因为我使用:

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);
4

2 回答 2

1

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

于 2012-11-25T12:39:33.987 回答
0

我遇到的最大问题是

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

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

解决方案是在后台创建一个虚拟布局并对其进行测量。

于 2012-11-25T13:15:30.127 回答