본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] GridView ( 그리드 뷰 ) with sample code.

by 돼지왕 왕돼지 2012. 2. 28.
반응형


안녕하세요. 돼지왕 왕돼지입니다.

오늘은 GridView ( 그리드 뷰 )를 sample code 와 함께 알아보겠습니다.



그리드 뷰 ( Grid View ) 가 뭐고?


   : 2차원의 표 형태로 출력하는 ListView의 일종입니다.


<attributes> 

numColumns = "integer" : integer 갯수의 열
                       = "auto_fit" : 자동 계산
 
verticalSpacing & horizontalSpacing : 항목들간의 간격
 
columnWidth : 항목 하나의 폭
 
stretchMode = "columnWidth"
              : columnWidth에 맞춘다. (가득 채운다.)
              : 열 내부에 여백이 있을 때 여백을 어떻게 처리할 것인가?







Sample Code


<layout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/grid"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="10dp"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"
       android:numColumns="auto_fit"
       android:columnWidth="60dp"
       android:stretchMode="columnWidth"
       android:gravity="center"/>
 
<java>
GridView grid = (GridView)findViewById(R.id.grid);
ImageAdapter adapter = new ImageAdapter(this);
grid.setAdapter(Adapter);
 
grid.setOnItemClickListener(new OnItemClickListener(){
   public void onItemClick(AdapterView<?> parent, View view, int position, long id){
      // To Do
   }
}
 
class ImageAdapter extends BaseAdapter{
   context con;
   int[] picture = {R.drawable.a, R.drawable.b, R.drawable.c};
 
   public ImageAdpater(Context c){con = c; }
   public int getCount(){ return 100; }
   public Object getItem(int position){ return picture[position%3]; }
   public long getItemId(int position){ return position; }
 
   public View getView(int position, View convertView, ViewGroup parent){
      ImageView imageView;
      if(convertView == null){
         imageView = new ImageView(mContext);
         imageView.setLayoutParams(new GridView.LayoutParams(45, 45));
         imageView.setAdjustViewBounds(false);
         imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
         imageView.setPadding(8, 8, 8, 8);
      }
      else{
         imageView = (ImageView) convertView;
      }
 
      imageView.setImageResources(picture[position % 3]);
     
      return imageView;
   }
}



로그인 없이 추천 가능합니다. 손가락 꾸욱~





반응형

댓글