본문 바로가기
앱 만들기/안드로이드 study

갤러리 뷰 만들어보기 (안드로이드 스튜디오)

by 나도처음이야 2020. 6. 11.
반응형

현재는 depreciate API이지만, 

간단한 갤러리 뷰 구현을 위해서 기록삼아 내용을 남겨둔다.

 

Gallery gallery;
ImageView imageView;
// 갤러리 뷰에 사용될 이미지.
Integer[] imageID = {
    R.drawable.
apple, R.drawable.bear1, R.drawable.bear2, R.drawable.good,
       
R.drawable.grape, R.drawable.strawberry , R.drawable.strawberry2
}
;
@Override
protected void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
   
setContentView(R.layout.activity_main);
   
//뷰의 주소값을 받는다.
   
imageView = findViewById(R.id.imageView);
   
imageView.setImageResource(imageID[0]);

   
gallery = findViewById(R.id.gallery1);
   
gallery.setAdapter(new ImageAdapter(this));
   
//갤러리가 선택 시 이미지 뷰에 이미지를 그려줌.
   
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       
@Override
       
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
            imageView.setImageResource(imageID[position]);
       
}
    })
;
}
// 갤러리 뷰에 연결될 adapter 클래스.
class ImageAdapter extends BaseAdapter{
   
int galleryBackground;
    private
Context context;
    public
ImageAdapter(Context c){
       
context = c;
       
TypedArray typedArray = obtainStyledAttributes(R.styleable.GalleryTheme);
       
galleryBackground = typedArray.getResourceId(
                R.styleable.
GalleryTheme_android_galleryItemBackground, 0);
       
typedArray.recycle();
   
}
   
@Override
   
public int getCount() {
       
// 갤러리 뷰의 개수
       
return imageID.length;
   
}
   
@Override
   
public Object getItem(int position) {
       
return position;
   
}
   
@Override
   
public long getItemId(int position) {
       
return position;
   
}
   
@Override
   
// 선택된 갤러리 뷰를 설정함.
   
public View getView(int position, View view, ViewGroup viewGroup) {
        ImageView imgView =
new ImageView(context);
       
// 선택된 Index 에 이미지를 설정해준다.
        imgView.setImageResource(imageID[position])mgView.setImageResource(imageID [position]);
       // 갤러리 뷰의 크기를 설정한다.
       
imgView.setLayoutParams(new Gallery.LayoutParams(300, 270));
       
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
       
imgView.setBackgroundResource(galleryBackground);

        return
imgView;
   
}
}

 

 

위와 같이 구현을 하면, 하기처럼 간단하지만 예쁜 UI를 구현할 수 있다.

여기에 페이저 뷰를 첨가하면 화면을 넘기는 기능까지 적용 할 수 있다.

 

 

반응형

댓글