동적으로 내 앱용 버튼을 만들고이를 스크린에 무작위로 배치하려고합니다.어떻게 동적으로 생성 된 버튼을 임의로 배치 할 수 있습니까?
버튼 만들기 내부 onCreate
입니다 : 내가 선형 레이아웃 방법 setMargins
사용하여 위치를 시도하고
// Create buttons
for (int i = 0; i < NUMBER_OF_BUTTONS; i++) {
Button hiddenButton = new Button(this);
// Set new button properties
hiddenButton.setId(i);
hiddenButton.setOnClickListener(setOnClick(hiddenButton));
// Add the button to the array of buttons
buttonsArr[i] = hiddenButton;
}
을 그리고이 기능을 가지고하는 것은 무작위로 배치하는 :
private void placeButtonsOnScreen() {
Random r = new Random();
LinearLayout layout = (LinearLayout) findViewById(R.id.ordered_buttons_layout);
for (int i = 0; i < NUMBER_OF_BUTTONS; i++) {
final Button hiddenButton = buttonsArr[i];
// Get random horizontal margin for the button
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
horizontalMargin = r.nextInt(Math.abs(SCREEN_WIDTH
- hiddenButton.getWidth()));
layoutParams.setMargins(horizontalMargin, 50, 0, 0);
// Add the button to the screen
layout.addView(hiddenButton, layoutParams);
Log.d("button width", String.valueOf(hiddenButton.getWidth()));
}
}
문제를 getWidth()
함수는 0을 반환합니다. 화면 양쪽에 잘리지 않고 (즉, 버튼의 너비를 뺀) 화면에 버튼을 배치하려면 어떻게해야합니까?
때 placeButtonsOnScreen()를 호출합니까? – pskink