현재는 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를 구현할 수 있다.
여기에 페이저 뷰를 첨가하면 화면을 넘기는 기능까지 적용 할 수 있다.
댓글