GridViewの境界線を設定する方法。
ListViewのDividerおよびDividerHeightなど。
または境界線を表示する方法。
以下は、GridViewの境界線の例です。
XMLで赤と青の境界線を定義した場所を確認できます。
これは私のmain.xmlレイアウトです:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/root"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@color/red" >
<GridView
Android:id="@+id/gridview"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_margin="10dp"
Android:background="@color/blue"
Android:columnWidth="90dp"
Android:gravity="center"
Android:horizontalSpacing="10dp"
Android:numColumns="auto_fit"
Android:stretchMode="columnWidth"
Android:verticalSpacing="10dp"
/>
</RelativeLayout>
赤い境界線の太さは、GridViewのlayout_margin
属性と青い境界線は、horizontalSpacing
とverticalSpacing
によって制御されます。
黒いセルの背景を作成するために、このレイアウトを使用して、list_item.xmlとして保存しました。
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@Android:color/black"
Android:gravity="center_vertical"
Android:minHeight="?android:attr/listPreferredItemHeight"
Android:paddingLeft="6dip"
Android:textAppearance="?android:attr/textAppearanceLarge" />
私の活動:
public class Example extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] array = new String[] {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
List<String> list = new ArrayList<String>(Arrays.asList(array));
GridView grid = (GridView) findViewById(R.id.gridview);
grid.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list));
}
}
グリッドアイテムxmlファイルの背景として、以下のxmlファイルを使用します。
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<solid Android:color="@Android:color/transparent" />
<corners
Android:bottomRightRadius="12dp"
Android:bottomLeftRadius="12dp"
Android:topLeftRadius="12dp"
Android:topRightRadius="12dp" />
<stroke
Android:color="@Android:color/white"
Android:width="1dp" />
</shape>
Res/drawableフォルダーにgrid_row_border.xmlを作成します。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<solid Android:color="@Android:color/transparent" />
<corners
Android:bottomRightRadius="5dp"
Android:bottomLeftRadius="5dp"
Android:topLeftRadius="5dp"
Android:topRightRadius="5dp" />
<stroke
Android:color="@color/material_grey_600"
Android:width="1dp" />
</shape>
これをグリッドレイアウトxmlで以下のように使用します
Android:background="@drawable/grid_row_border"
見栄えを良くするために、パディング[Android:padding = "5dp"]とマージン[Android:layout_margin = "5dp"]を提供します。
画像行xmlの私のギャラリー画像の周りにこれらのビューを追加します。
<View
Android:layout_width="@dimen/listGalleryItemWidthLarge"
Android:layout_height="2dip"
Android:layout_above="@+id/gallery_row_iv"
Android:layout_centerHorizontal="true"
Android:background="#FFFFFF" />
<View
Android:layout_width="@dimen/listGalleryItemWidthLarge"
Android:layout_height="2dip"
Android:layout_below="@+id/gallery_row_iv"
Android:layout_centerHorizontal="true"
Android:background="#FFFFFF" />
<View
Android:layout_width="2dip"
Android:layout_height="@dimen/listGalleryItemHeightLarge"
Android:layout_centerVertical="true"
Android:layout_toRightOf="@+id/gallery_row_iv"
Android:background="#FFFFFF" />
<View
Android:layout_width="2dip"
Android:layout_height="@dimen/listGalleryItemHeightLarge"
Android:layout_centerVertical="true"
Android:layout_toLeftOf="@+id/gallery_row_iv"
Android:background="#FFFFFF" />