2011-01-06 69 views
1

我正在嘗試爲Android編寫一個紙牌遊戲,並且遇到佈局困難。我編寫的主要遊戲畫面包括五張左右排列的卡片和五張橫向排列在頂部和底部的卡片。我遇到的問題是如果沒有空間顯示所有其他卡片,我需要所有卡片水平和垂直縮小。如何強制Android視圖縮小子

下面是問題的圖片(爲了清楚起見,我省略了左側和底部的卡片)。正如你所看到的,右邊只顯示了四張牌 - 底牌部分被遮住了。視圖的空間不足,因此會丟棄不適合的其餘卡片。

下面是截圖鏈接,因爲我不能發表圖片:image

我想在這種情況下什麼是Android減少所有的頂級卡和右卡的高度,直到底部卡完全可見。這看起來並不複雜,但我無法讓它工作。我通過使用RelativeLayout創建了下面的圖片,並將所有頂部牌相鄰放置,並將所有右側牌放置在彼此的下方(頂部牌在右側頂部牌下方)。我嘗試將所有卡片添加到他們自己的視圖中,但這也不起作用。

有什麼建議嗎?謝謝!好吧,我把它靠得更近(見底部的圖像鏈接),但現在我有相反的問題 - 我需要增加它。我相信這是因爲我縮小了我用於西服的圖像。正如你所看到的,它們都縮小到一個小尺寸。我希望能夠將每個按鈕的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

我想問裏克莫拉尼斯 – jmichalicek 2011-10-01 01:33:51

回答

0

你可能想看看使用LinearLayout的權重特徵,這將強制子視圖的大小到可用空間。在你的情況下,你可能希望他們都是相同的重量。