2012-11-25 38 views
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); 

回答

0

最大的問題,我是

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

返回包括頂部的狀態欄。值(或通知,不知道如何稱呼它),並在底部的軟件按鈕。

解決方案是在後臺創建一個虛擬佈局並進行測量。

1

使用RelativeLayout爲你的容器,而不是LinearLayout,因爲這是被設計爲。

+0

同樣的結果,文本有時會出現在屏幕的右側,並被「切割」 –

相關問題