2011-02-25 6 views
8

내 레이아웃에는 8 개의 셀만 있습니다.
화면에서 사용할 수있는 모든 공간을 셀로 나누고 싶습니다. 이것이 가능한가?화면 높이에 따라 GridView 셀의 높이를 어떻게 설정할 수 있습니까?

이 내있는 gridview 레이아웃입니다 :

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/dataGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10px" 
    android:verticalSpacing="10px" 
    android:horizontalSpacing="10px" 
    android:numColumns="2" 
    android:gravity="fill" /> 

그리고이 항목의 레이아웃입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="6dip" > 
    <TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:textColor="#E00000" 
      android:textStyle="bold" 
      android:gravity="left" 
      android:textSize="16dip"/>  
     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:textColor="#000000" 
      android:textStyle="normal" 
      android:gravity="right" 
      android:textSize="12dip"/> 
    </LinearLayout> 
    </TableRow> 
</LinearLayout> 

답변

0

첫째, 대신 PX의 사용 PS. 이렇게하면 다른 DPI 장치로 확장 할 수 있습니다.

둘째, 각 셀을 짝수 크기로 만들려면 선명한 이미지가 포함 된 각 셀에 tableView를 넣을 수 있습니다. PS (px가 아님)로 이미지의 크기를 설정하십시오. 표보기를 사용하면 각 셀에 레이아웃 객체를 겹쳐서 표시 할 수 있으며 선명한 그래픽은 모든 셀을 동일한 크기로 유지해야합니다.

나는 또한 모든 패딩을 제거합니다.

알려주세요.

+0

exuse me 그러나 약 3 일 동안 인터넷 연결이 끊어졌습니다. 어쨌든 gridview가 모든 안드로이드 장치를 기반으로 화면의 모든 공간을 나누고 싶습니다.이 솔루션은 전혀 좋지 않습니다. 감사. 문안 인사 –

1

불행히도 GridView은 시도하는 것처럼 특정 크기에 맞게 내부보기를 얻으려는 까다로운 레이아웃입니다. GridView을 고급 "ListView"으로 생각하는 것이 "격자"가 아닌 사진 앨범의 축소판과 같이 가변 길이의 스크롤 가능한 목록을 표시하는 데 더 적합하다고 생각합니다. 원래 게임을위한 고정 크기의 그리드를 만들고 싶었을 때이 경로를 시작했지만 실제로는 그 레이아웃이 적절하지 않습니다. 대신

그리드는 항상 8 개 세포이기 때문에, 나는 중첩 된 LinearLayout의를 사용하는 것이 좋습니다 수 (또는 당신은 모든 셀 정확히 같은 크기, 더 복잡한 TableLayout/TableRow 콤보를 원하지 않는 경우) :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:weightSum="1.0" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_weight="0.5" 
     android:orientation="horizontal" 
     android:weightSum="1.0" > 

     <!-- Drop in 4 items here with layout_weight of 0.25 --> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_weight="0.5" 
     android:orientation="horizontal" 
     android:weightSum="1.0" > 

     <!-- Drop in 4 items here with layout weight of 0.25 --> 

    </LinearLayout > 
</LinearLayout > 

이렇게하면 고정 된 2x4 격자가 항상 화면을 정확히 채 웁니다.

관련 문제