Я создал gridview с адаптером клиента. Чтобы предоставить каждую границу ячеек, я разместил их в двух макетах. Первый макет имеет черный bg, а второй макет – белый bg и содержимое. И я дал родительский макет 1dp отступов, который дал вид границы
Но проблема в том, что, когда две ячейки встречаются вертикально, их размер границы становится равным 2dp, т. Е. Нижняя граница одной ячейки сливается с верхней границей другой ячейки.
Но мне нравится создавать границу, как в данном изображении
Вот код xml-файла моей текущей ячейки
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layBorder" android:layout_width="77dp" android:layout_height="wrap_content" android:background="#000000" android:orientation="vertical" android:padding="1dp" > <FrameLayout android:id="@+id/FrameLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" > <ImageView android:id="@+id/ivElementName" android:layout_width="40dp" android:layout_height="60dp" android:layout_gravity="center_vertical|center_horizontal" android:layout_margin="1dp" android:adjustViewBounds="true" android:background="#00000000" android:maxHeight="60dp" android:maxWidth="40dp" android:minHeight="60dp" android:minWidth="40dp" /> <ImageView android:id="@+id/ivElementImg" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="bottom|center_vertical|center_horizontal" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:adjustViewBounds="true" android:background="#00000000" android:baselineAlignBottom="true" android:cropToPadding="true" android:maxHeight="30dp" android:maxWidth="30dp" android:minHeight="30dp" android:minWidth="30dp" android:visibility="invisible" /> </FrameLayout> </LinearLayout>
Вы должны сделать следующее:
И не забудьте изменить высоту макета элемента сетки как match_parent
GridView gv = findViewById(R.id.my_grid_view); gv.setBackgroundColor(Color.WHITE); gv.setVerticalSpacing(1); gv.setHorizontalSpacing(1);