이번에 개발하는 어플에 그리드뷰를 써야 되는데 디자인시안에 선이 들어간것을 보고 여기 저기 찾아보다
 
스택오버플로우나 각종 안드로이드 어플리케이션 개발관련 커뮤니티에 GridView에 선을 넣는 방법에 대해
 
질문은 많은데 답변이 없는걸 보고 이리저리 해보다 알아낸 방법입니다. 

 
가장 먼저 어떤 방법이든 좋습니다. 

GridView의 아이템을 구성하는 레이아웃 외곽선을 그려줄 수 있게 만들어 줍니다.

저같은 경우는 가운데를 투명영역으로 비운 나인패치 이미지를 배경으로 넣어주었습니다.

gridline.png



<?xml version="1.0" encoding="utf-8"?>
<TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/text"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:gravity="center"
     android:minHeight="40dip"
     android:background="@drawable/grid_line" />


단순히 이렇게 외곽선을 구성해서 넣어주게 되면 외곽라인을 제외한 부분이 선이 두겹이 되어 두껍게 보이게 됩니다.

이제 그리드뷰 속성중 horizontalSpacing과 verticalSpacing에 각각 -1px(선굵기) 만큼 넣어 줍니다.

<GridView
     android:id="@+id/grid"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:stretchMode="columnWidth"
     android:numColumns="2"
     android:horizontalSpacing="-1px"
     android:verticalSpacing="-1px"
    />

그리고 Adapter에 데이터를 넣어준뒤 그리드뷰에 넣어주면 아래와 같은 결과를 볼 수 있습니다.

 image.png

좀더 자세한 내용은 제가 첨부한 프로젝트 파일을 보시면 됩니다.


ps.. 이번에 GridView를 사용할일이 많아서 쓰다보니 느꼈는데 ListView에 비해 여러모로 부족합니다. Header와 Footer를

붙일 수 없고(일반적인 방법으로는 안됨) 가변높이에서 getView()메서드가 position 0번이 여러번 호출되는 버그도 있는듯하고

특수한 경우가 아니라면 가급적 리스트뷰를 사용하시길 권장합니다.