2011-01-06 4 views
1

Android 용 카드 게임을 쓰려고하는데 레이아웃이 어려워졌습니다. 저는 왼쪽과 오른쪽을 가로 질러 수직으로 배열 된 5 개의 카드와 상단과 하단을 가로 질러 수평으로 배열 된 5 개의 카드로 구성된 메인 게임 화면을 코딩하고 있습니다. 내가 겪고있는 문제는 다른 모든 카드를 보여줄 공간이 없다면 카드가 모두 수평 및 수직으로 수축되어야한다는 것입니다.Android보기에서 강제로 어린이를 축소하는 방법

아래 그림은 문제의 그림입니다 (명확성을 위해 왼쪽과 아래에있는 카드는 생략합니다). 보시다시피 오른쪽에 4 개의 카드 만 표시되어 있습니다. 하단 카드는 부분적으로 가려져 있습니다. 보기에는 공간이 부족하여 적합하지 않은 나머지 카드가 떨어집니다. 안드로이드는 바닥까지 모든 상단 카드 및 오른쪽 카드의 높이를 감소시키기 위해 내가이 상황에서하고 싶은 무엇 image

이 : 나는 이미지를 게시 할 수 없기 때문에 여기에

는 스크린 샷에 대한 링크입니다 카드가 완전히 보입니다. 그것은 복잡해 보이지 않지만 작동시키지 못합니다. RelativeLayout을 사용하고 아래에있는 모든 상단 카드를 서로 아래에 놓고 오른쪽에있는 모든 카드를 아래에 놓습니다 (상단 카드 바로 아래에있는 상단 카드가있는 상태). 모든 카드를 자신의보기에 추가하려고했지만 그 중 하나가 작동하지 않았습니다.

제안 사항? 감사!


OK, 나는 그것을 가까이 (하단에 이미지 링크 참조)를 가지고 있지만 지금은 정반대의 문제가 - 나는 그것을 증가해야합니다. 나는 그것이 내가 복장을 위해 사용하고있는 이미지를 축소했기 때문에 그것이라고 생각한다. 보시다시피 이들은 모두 작은 크기로 축소됩니다. LinearLayout의 보이는 부분에서 마지막 단추를 그리지 않고 모든 여유 공간을 사용하기 위해 가로/세로로 확장되도록 설정된 각 단추에 대한 LinearLayout을 가져올 수 있기를 바랍니다. 이상적으로는 어떤 크기의 이미지를 드롭하고 적절하게 크기를 조정할 수 있지만 레이아웃 엔진에서 순환 논리 나 무언가를 묻고 싶습니다.

여기 내 XML 파일입니다. HandView 클래스는 각 세트에서 다섯 장의 카드를 보유합니다. 5 장의 카드 사이에는 5 픽셀의 여백이 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:shrinkColumns="*" 
    android:background="#FF00FF00"> 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:background="#FF0000FF"> 
     <com.herscher.euchre.ui.HandView 
      android:background="#FFFF0000" 
      android:layout_column="1" 
      android:orientation="horizontal" 
      android:id="@+id/northHandView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" /> 
    </TableRow> 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content"> 
     <com.herscher.euchre.ui.HandView 
      android:layout_column="0" 
      android:orientation="vertical" 
      android:id="@+id/westHandView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <com.herscher.euchre.ui.PlayArea 
      android:layout_column="1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/playArea" /> 

     <com.herscher.euchre.ui.HandView 
      android:layout_column="2" 
      android:orientation="vertical" 
      android:id="@+id/eastHandView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </TableRow> 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content"> 
     <com.herscher.euchre.ui.HandView 
      android:layout_column="1" 
      android:orientation="horizontal" 
      android:id="@+id/southHandView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </TableRow> 

</TableLayout> 

New image is here

는 사람이 어떤 제안이 있습니까?

+0

나는 Rick Moranis에게 물어볼 것입니다. – jmichalicek

답변

0

LinearLayout의 체중 기능을 사용하면 어린이보기의 크기가 사용 가능한 공간으로 제한됩니다. 당신의 경우에는 아마 그들 모두가 같은 무게가되기를 원할 것입니다.

관련 문제