2011-09-30 96 views
1

我想使用GridView來實現馬賽克效果。柵格項目都是圖像,與APIDemo示例中的Gri 2相似。問題是,即使在所有填充和間距都設置爲0之後,圖像之間始終存在間隙。我錯過了其他一些設置以消除間隙嗎?我希望圖像緊挨着彼此。Android gridview,如何刪除網格項之間的差距

我將列寬設置爲120dip。這裏是我的代碼設置圖像寬度爲120dip:

mTileWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, r.getDisplayMetrics()); 

是否有問題?

謝謝!

+0

我試圖在回答中提到的方法,但他們沒有工作。正如問題中提到的,我已經嘗試將間隔和間隔設置爲0.將它們設置爲負數也沒有幫助。最後,我剛剛獲得了屏幕寬度,並將它們除以4,並將其用作imageView寬度(我有4個圖像作爲需求),並且它看起來可行。我說出現是因爲它看起來在按下其中一個圖像視圖時會重疊一些圖像視圖。 – Ray

回答

3

這是一個非常古老的問題,我的回答是,它只是提高我的錄取率:) 在我剛剛計算出屏幕的寬度和列數除以它的結束,並將結果作爲一個項目的寬度。我想連續。這解決了問題。 mmmmm5的答案也許是正確的,差距是由android添加的填充,我們只需要繞過它。

1

如果您查看Android的聯繫人源代碼,則會創建一個自定義GridView類。快速回顧,有設置填充等。也許,這可以回答你的問題

0

如果填充沒有添加到您的適配器,看看你的XML。看看android:stretchMode以及android:verticalSpacing和android:horizo​​ntalSpacing。

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/gridview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:columnWidth="14dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     android:stretchMode="columnWidth" 
     android:gravity="center" 
    /> 
1

還有另一個工作解決方案。當從getView()方法在適配器返回視圖爲GridView,你必須設置佈局參數如下:

view.setLayoutParams(new GridView.LayoutParams(
    TableLayout.LayoutParams.MATCH_PARENT, 
    TableLayout.LayoutParams.MATCH_PARENT)); 
0

或者更簡單,在我的手機的XML,我把下面的參數上的根鑑於

android:layout_width="match_parent" 
    android:layout_height="match_parent" 

和設置我的gridview的那樣:

<GridView 
    android:id="@+id/gridview_type" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:stretchMode="columnWidth" 
    android:numColumns="3" 
    tools:listitem="@layout/cell_type" 
    />