2012-06-20 3 views
0

XML 코드 :안드로이드의 버튼을 화면에서 자동으로 늘리거나 줄이는 방법은 무엇입니까?

<GridLayout 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/step" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/menu" > 
</GridLayout> 

위의 코드는 버튼의 쉬운 레이아웃이 생성되는 수 있도록 격자를 생성합니다.

자바 코드 :이 코드

GridLayout grid = (GridLayout)findViewById(R.id.grid); 
grid.setColumnCount(10); 
grid.setRowCount(10); 
cells = new Button[100]; 
for (int i = 0; i < 100; i++) { 
    cells[i] = new Button(this); 

    if (gen.nextInt(3) % radiofill == 0) //[0,3) 
     cells[i].setBackgroundColor(Color.WHITE); 
    else 
     cells[i].setBackgroundColor(Color.BLACK); 

    cells[i].setClickable(true); 
    cells[i].setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
      v.setBackgroundColor(Color.BLACK); 
     } 
    }); 
    grid.addView(cells[i]); 
} 

100 단추를 만들고 궁극적으로 생성 된 XML을 GridLayout 첨가 어레이에 추가되고있다.

모든 버튼이 만들어지고 배치되고 작동하는 것처럼 보이지만 버튼이 크기 때문에 휴대 전화의 화면에 맞지 않습니다. 어떻게 오버 또는 흐르지 않고 단추가 GridLayout을 완벽하게 채울 수 있습니까? 이 경우 100 개의 버튼이 만들어 지지만 프로그램은 여러 유형의 완벽한 사각형 번호 (4, 9, 16, 25, 36, 49)를 만들 수 있도록 설계되어 GridLayout이 유연해야합니다.

답변

1

당신이

<LinearLayout android:layout_height="wrap_content" 
android:layout_width="0dip" 
android:layout_weight="1" /> 
+0

내가 선형 레이아웃을 사용할 수있는 경우의 LinearLayout을 사용하는 경우 완벽한 광장에있는 버튼을 유지하는 방법이? – jrquick

+0

예. 한 가지 옵션은 사용자 정의보기를 만들고 onMesaure()에 사각형 값을 전달하는 것입니다. 이 주제에 대한 많은 게시물이 있습니다. –

관련 문제