반응형
오늘은 view pager의 "간단"한 사용법에 대해 알아보겠습니다.
view pager는 말 그대로 뷰를 페이지처럼 넘겨보듯이? 하기 위한건데,
보기 편하기 위해 사용하는 것입니다.
우선 viewPager를 사용할 layout(activity_main)을 다음과 같이 설정합니다.
<android.support.v4.view.ViewPager
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</android.support.v4.view.ViewPager>
그리고 슬라이드로 사용할 layout(slider)을 하나 더 만듭니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:text=""
android:textSize="30dp"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp" />
</LinearLayout>
이렇게 텍스트와 이미지로 구성해봤습니다.
그 다음 뷰페이저를 작동시킬 "adapter"를 만들어야합니다.
어댑터 class를 정의하고 PagerAdapter 를 extends하면 getCount()와 isViewFromObject가 생성될 것입니다.
getCount는 사용할 view의 개수를 나타낸다 생각하시면 되고,
isViewFromObject는 instantiateItem 에서 생성한 객체를 사용할지 여부에 대해 판단합니다.
위 2가지를 선언 후, instantiateItem을 정의해줘야합니다.
instantiateItem 안에는 RecyclerViewAdapter or ListViewAdapter와 유사하게 item에 대한 inflater를 해주는 곳입니다.
위에서 만든 slider layout을 view로 선언해주고 사용할 아이템에 대한 정의를 해준 뒤 view를 return해주면 됩니다.
마지막으로 detroyItem을 선언해 viewpager 종료 시 destory 시켜줘야 합니다.
public class Adapter extends PagerAdapter {
private int[] images = {R.drawable.images1, R.drawable.images2, R.drawable.images3};
private LayoutInflater inflater;
private Context context;
public Adapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == ((LinearLayout) object);
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.slider, container, false);
ImageView imageView = (ImageView) v.findViewById(R.id.imageView);
TextView textView = (TextView) v.findViewById(R.id.textView);
imageView.setImageResource(images[position]);
textView.setText((position + 1) + "번째 이미지입니다.");
container.addView(v);
return v;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.invalidate();
}
}
이런식으로 작성하면 됩니다.
이렇게 작성한 어댑터를 이제 메인에서 사용하기만 하면 끝!!!!
MainActivity에서는 layout_main에서 선언한 viewPager를 findViewById해주시고 apdater를 선언, viewPager에 setAdapter하면
세상에서 가장 간단한 viewPager의 사용 방법이 되겠습니다.
설명은 다 드렸으니 MainActivity는 직접 구현해보세요!
단 3줄이면 끝납니다!
이상 ViewPager의 "간단한" 사용 방법이었습니다.
반응형
'Android > Java' 카테고리의 다른 글
간단한 SplashActivity 만들기 (0) | 2018.05.09 |
---|---|
ProgressbarUtil 만들기 (0) | 2018.05.08 |
마켓에 올린 앱의 "버전" 가져오는 방법 (0) | 2018.05.06 |
권한요청하기 (0) | 2018.05.02 |
sms보내기 (0) | 2018.04.26 |