2013-08-03 1 views
0

안드로이드에서 어떻게 자바를 사용하여 선형 레이아웃을 삽입하고 가로 레이아웃에 3 개의 버튼을두고 버튼을 중앙에 배치 할 수 있습니까?안드로이드에 선형 레이아웃과 가운데 버튼을 만드는 방법은 무엇입니까?

기본적으로 3 열 1 행, 각 열의 폭이 동일하고 각 레이아웃 셀의 세로 및 가로 가운데에 이미지 버튼을 삽입하는 가로형 선형 레이아웃이 필요합니다.

LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); 
    layout.setLayoutParams(params); 

누구에게 어떻게 해야할지 알고 있나요?

감사합니다.

사용자 레이아웃에 대한 중력을 설정하여 레이아웃에서 모든 아이 뷰 중심 수

답변

1

센터 수평 같은 새로 건설의 LayoutParams

+0

가 어떻게 각 셀이 동일한 폭을 만들 수 있죠 ^^ 더 복잡? – omega

1

사용할 수 weightsum = 3 대와 addView 하였다

LayoutParams layout_params = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT, Gravity.CENTER_HORIZONTAL); 

을 linearlayout 및 각 버튼에 대해 layout_weight = 1입니다. 세부 코드를 참조하십시오. 도움이되기를 바랍니다. 행운을 빕니다 :)

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    layout.setLayoutParams(params); 

    layout.setWeightSum(3); 

    for (int i = 0; i < 3; i++) { 
     LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     btnParams.weight = 1.0f; 

     Button btn = new Button(this); 
     btn.setText("Btn"); 
     btn.setLayoutParams(btnParams); 

     layout.addView(btn); 
    } 

    setContentView(layout); 
    } 
} 

또는이 코드를 잘하지만

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    LinearLayout mainLayout = new LinearLayout(this); 
    mainLayout.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    mainLayout.setLayoutParams(params); 

    mainLayout.setWeightSum(3); 

    for (int i = 0; i < 3; i++) { 
     LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     Button btn = new Button(this); 
     btn.setText("Btn"); 
     btn.setLayoutParams(btnParams); 

     LinearLayout childLayout = new LinearLayout(this); 
     LinearLayout.LayoutParams childParam = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     childParam.weight = 1.0f; 

     childLayout.setLayoutParams(childParam); 
     childLayout.setGravity(Gravity.CENTER); 
     childLayout.addView(btn); 

     mainLayout.addView(childLayout); 
    } 

    setContentView(mainLayout); 
} 
} 
관련 문제