그리드 뷰 GridView
2차원 격자에 항목들을 표시하는 뷰 그룹
1. 레이아웃
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:gravity="center">
</GridView>
2. 이미지 어댑터를 처리하는 클래스
자바 파일을 만들고 어댑터 기능을 수행하게 하려면 BaseAdapter를 extends하고,
빨간 줄이 뜨면 그 위에서 Alt+Enter를 누르면 필요한 메서드들이 오버라이딩 된다.
package com.progdv.app05_gridview;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter{
Context context;
private Integer[] mThumblds ={R.drawable.ph1_s, R.drawable.ph2_s, R.drawable.ph3_s,
R.drawable.ph4_s, R.drawable.ph5_s, R.drawable.ph6_s,
R.drawable.ph1_s, R.drawable.ph2_s, R.drawable.ph3_s,
R.drawable.ph4_s, R.drawable.ph5_s, R.drawable.ph6_s,
R.drawable.ph1_s, R.drawable.ph2_s, R.drawable.ph3_s,
R.drawable.ph4_s, R.drawable.ph5_s, R.drawable.ph6_s,
R.drawable.ph1_s, R.drawable.ph2_s, R.drawable.ph3_s,
R.drawable.ph4_s, R.drawable.ph5_s, R.drawable.ph6_s
};
public ImageAdapter(Context context){
this.context = context;
}
@Override
public int getCount() {
return mThumblds.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView == null){
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(300,300));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}else{
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumblds[position]);
return imageView;
}
}
3. 메인 클래스
package com.progdv.app05_gridview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 그리드 어댑터 세팅: 이미지 처리를 위한 이미지 어댑터를 그리드뷰에 전달
gridView = (GridView)findViewById(R.id.gridView01);
ImageAdapter imageAdapter = new ImageAdapter(this);
gridView.setAdapter(imageAdapter);
// 이벤트 처리를 위한 부분
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), (++position)+"번째 이미지 선택", Toast.LENGTH_SHORT).show();
}
});
}
}
'안드로이드' 카테고리의 다른 글
Toast: 랜덤 숫자 맞추기 게임 (0) | 2016.04.26 |
---|---|
이벤트 처리: Toast 이벤트 기초 (0) | 2016.04.26 |
AdapterView: Spinner (0) | 2016.04.26 |
AdapterView: Custom Adapter 만들기 (0) | 2016.04.25 |
AdapterView: ListView (0) | 2016.04.25 |