2013-04-20 56 views
2

我想知道如何「隨機」將一個按鈕數組放置在RelativeLayout中?Android:我如何在活動中隨機放置一組按鈕?

是否可以在整個視圖周圍放置按鈕?

感謝您的幫助!我嘗試過使用setX()和setY(),但它們是浮點數,我不確定它們如何按照屏幕大小的比例放置按鈕。

+2

你試過了什麼?向我們展示一些對我們更有幫助的代碼。 – 2013-04-20 05:28:26

回答

3

您可以將佈局邊距添加到您的按鈕。由於邊距不是相對於彼此而是相對於框架而言,它實際上將定位您的按鈕。

要設置你必須設置視圖的佈局PARAMS邊距:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
Random random = new Random(); 
params.leftMargin = random.nextInt(100); 
params.topMargin = random.nextInt(100); 
button.setLayoutParams(params); 

然而,這可能會導致你的按鈕重疊,或者是活動之外,所以最好不要使用位置完全是隨機的值但要根據設備分辨率和按鈕大小執行重疊檢查和設置隨機範圍。

要獲得設備顯示器尺寸:

Display display= activity.getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int Height = display.getHeight(); 
+0

有沒有一種方法可以訪問當前正在使用的設備的尺寸? – 2013-04-20 06:02:37

+0

我希望你找到你的解決方案,以供將來參考我擴展我的答案。 – 2013-05-02 09:06:30

0

,而不是做這樣的事情首先創建一個按鈕陣列,並找到相應的ID ...

LayoutParams lp = new LinearLayout.LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT); 
Button[] buttons; 
for(int i=0; i<4; i++) { //suppose you have four buttons 
{ 
String buttonID = "button" + (i+1); 
int resID = getResources().getIdentifier(buttonID, "id", getPackageName()); 
buttons[i] = ((Button) findViewById(resID)); 
buttons[i].setHeight(yourvalue); 
buttons[i].setWidth(yourvalue); 
buttons[i].setLayoutParams(lp); 
} 

希望工程爲您

相關問題