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

上部の statusBar (または通知、呼び出し方がわからない) と下部のソフトウェア ボタンを含む値を返します。

解決策は、バックグラウンドでダミー レイアウトを作成し、それを測定することでした。

于 2012-11-25T13:15:30.127 に答える