2011-09-15 86 views
13

請參閱附件截圖,我試圖減少GridView中列之間的空間。Android:減少GridView中列間的空間

我的main.xml如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<GridView 
android:id="@+id/gridview" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:stretchMode="columnWidth" 
android:gravity="center" 
/> 
<LinearLayout 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
    <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/logo"/> 
    <TextView 
    android:text="@string/game_score" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center"/> 
</LinearLayout> 
</LinearLayout> 

我從位圖建立在我的代碼ImageViews。但是,我沒有指定任何填充或間距或其他。

如何減少列之間的空間?我已經嘗試了多種設置在兩個GridView和ImageViews,但沒有運氣

圖片here

感謝

+0

過去的imageadapter代碼: –

+4

嘿那裏,我有同樣的問題,我想知道如果你找到任何解決方案;你呢? – Ciprian

+0

您能否接受指定列數而不是列寬的解決方案? – Hong

回答

19

嘗試修復在XML文件中需要的網格列數,並設置stretchMode作爲columnWidth時

android:numColumns="3" 
android:columnWidth="60dp" 
android:stretchMode="columnWidth" 

或設置水平和垂直間距以xml電網

android:verticalSpacing="10dp" 
android:horizontalSpacing="10dp" 
+3

我實際上已經在我的代碼中設置了numColumns。這些選項都沒有減少列之間的空間。將水平間距修改爲負值只是將整個網格向左推進。我可以讓空間消失的唯一方法是如下寬度硬編碼:android:layout_width =「350px」。但是,這不是我的首選解決方案 – DJ180

+0

不起作用.. – Ixx

11

刪除重力屬性並使用下面的模式列之間

android:stretchMode="NONE" 
+0

你是什麼意思的「*」 - 這似乎不是一個允許的屬性?無論哪種方式,當我嘗試這與一些有效的屬性值它不起作用 – DJ180

+0

它代表*(astrick)意味着自動調整空間 – sravan

+0

不起作用。 – Ixx

4

空間,因爲你的GridView元件沒有被完全佔據由網格視圖中提供的列空間。

刪除列之間空間的解決方案是測量設備的屏幕寬度和高度,並將其除以列數和行數。這將給每個網格視圖元素的寬度和高度。

您必須將此高度和寬度分配給imageview,並縮放您的位圖以匹配imageview。

代碼:

DisplayMetrics displayMetrics=getResources().getDisplayMetrics(); 
    screen_width=displayMetrics.widthPixels; //width of the device screen 
    screen_height=displayMetrics.heightPixels; //height of device screen 

    int view_width=screen_width/number of columns; //width for imageview 
    int view_height=screen_height/number of rows; //height for imageview 


    Imageview myImageView=(ImageView)findViewById(R.id.my_id); 
    myImageView.getLayoutParams().width=view_width; 
    myImageView.getLayoutParams().height=view_height; 

    Bitmap myImage=Bitmap.createScaledBitmap(src, view_width, view_height, true);//scaling the image to match the size of image view 
3

嗨,我有我的mygridView.setStretchMode(GridView.NO_STRETCH);

1

解決了我在具有幾臺設備中的列之間的輕微水平間距的類似的問題,同樣的問題。 (我沒有要求任何空間。)我正在計算網格項目的寬度除以總寬度。我只在Lenovo設備上收到此問題。

以下代碼與網格相關的活動。

int myRequestedColumnWidth = myGridViewContentMain.getRequestedColumnWidth(); 

Point size = new Point(); 
getWindowManager().getDefaultDisplay().getSize(size); 
int width = size.x; 
int height = size.y; 

int myGridColumns = width/myRequestedColumnWidth; 

if (myGridColumns == 0 || myGridColumns == 1) 
    myGridColumns = 2; 
myColumnWidth = (width/myGridColumns); 

myGridViewContentMain.setNumColumns(myGridColumns); 

下面的代碼是在佈局XML電網

<GridView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/gridViewContentMain" 
    android:layout_centerHorizontal="true" 
    android:numColumns="2" 
    android:columnWidth="200dp" 
    android:verticalSpacing="0dp" 
    android:layout_below="@+id/relativeLayoutMainHeader" 
    android:layout_above="@+id/relativeLayoutProgressBar" 
    /> 

我無法改變拉伸模式值後要解決的問題。

但是,下面的GridView佈局xml中的值做了訣竅。

android:horizontalSpacing="0dp" 

我希望,像我這樣的人可能會覺得這有幫助。

問候。

1

我有同樣的問題。我做這個

爲GridView的

android:numColumns="2" 
android:columnWidth="90dp" 
android:verticalSpacing="0dp" 
android:horizontalSpacing="-30dp" 
android:stretchMode="columnWidth" 

爲ImageView的

android:layout_width="115dp" 
android:layout_height="150dp" 
android:padding="1dp" 
android:layout_marginLeft="30dp" 
android:layout_marginRight="-15dp" 
0

最小柱空間,可以通過設置在Android減少空間的B/W列:horizo​​ntalSpacing = 「 - 10dp」(一些負數)

相關問題