См. Скриншот прикрепленного скриншота, где я пытаюсь уменьшить пространство между колоннами в моем 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 в моем коде из растрового изображения. Тем не менее, я не указываю какую-либо прокладку или интервал или иным образом.
Как я могу уменьшить это пространство между столбцами? Я пробовал различные настройки на обоих GRIDViews, так и на imageViews, но без удачи
изображение :
Спасибо
Пространство между столбцами связано с тем, что ваш элемент gridview не полностью занимает пространство столбца, обеспечиваемое представлением сетки.
Решением для удаления пространства между столбцами является измерение ширины и высоты экрана устройства и деление его на количество столбцов и строк. Это даст ширину и высоту для каждого элемента вида сетки.
Вы должны назначить эту высоту и ширину для просмотра изображений, а также масштабировать растровое изображение в соответствии с просмотром изображений.
код:
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
У меня была похожая проблема с небольшим горизонтальным интервалом между колонками в нескольких устройствах. (Мне не требовалось места.) Я правильно рассчитывал ширину элемента сетки, разделяя ее на общую ширину. Я получал эту проблему только на устройствах 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"
/>
Я не смог решить проблему после изменения значений режима растяжения.
Но следующее значение в макете XML для GridView добилось цели.
android:horizontalSpacing="0dp"
Надеюсь, кто-то вроде меня может найти это полезным.
Привет.