반응형
안드로이드 ViewPager Sample입니다.
Fragment를 이용한 ViewPager가 아닌 보통 앱에서 보여주는 튜토리얼로 쓰기 위한 Sample입니다.
기본적인 ViewPager를 사용하기 위해서는 ViewPager에 adapter를 넣어줘야 합니다.
그리고 PagerAdapter를 상속받은 클래스를 넣어주시면 될거같습니다.
PagerAdapter를 상속받는 클래스를 만드실 경우 오버라이드 메소드 설명입니다.
getCount() : PagerAdapter에서 관리할 갯수를 반환
instantiateItem() : ViewPager에서 사용할 뷰객체 생성 및 등록
destroyItem() : View 객체를 삭제
isViewFromObject() : 생성한 객체를 이용할 것인지 여부를 반환
1. MainActivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/btn1" android:layout_width="50dp" android:layout_height="50dp" /> <Button android:id="@+id/btn2" android:layout_width="50dp" android:layout_height="50dp" android:layout_below="@id/btn1" /> </RelativeLayout>
2. MainActivity
public class MainActivity extends AppCompatActivity { private int index = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); ImageAdapter adapter = new ImageAdapter(this); viewPager.setAdapter(adapter); findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e("test", "viewPager : " + index); if(index != 0){ index = index-1; viewPager.setCurrentItem(index); } } }); findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e("test", "viewPager : " + index); if(index != 5){ index = index+1; viewPager.setCurrentItem(index); } } }); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} @Override public void onPageSelected(int position) {index = position;} @Override public void onPageScrollStateChanged(int state) {} }); } }
3. ImageAdapter
public class ImageAdapter extends PagerAdapter { Context context; private final int[] drawableImgs = new int[] { R.drawable.tutorial_01, R.drawable.tutorial_02, R.drawable.tutorial_03, R.drawable.tutorial_04, R.drawable.tutorial_05, R.drawable.tutorial_06 }; ImageAdapter(Context context) { this.context = context; } @Override public int getCount() { return drawableImgs.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(context); Bitmap drawImg = BitmapFactory.decodeResource(context.getResources(), drawableImgs[position]); imageView.setImageBitmap(drawImg); container.addView(imageView, 0); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((ImageView) object); } }
반응형
'프로그램 > Android' 카테고리의 다른 글
안드로이드 Fabric 설치 (0) | 2017.11.17 |
---|---|
안드로이드 Url을 이용하여 Bitmap 다운로드 (0) | 2017.11.09 |
안드로이드 SDK 번호와 버전 정리 (0) | 2017.09.28 |
안드로이드 Mixed Content The page at was loaded over HTTPS (0) | 2017.09.27 |
안드로이드 라이브러리 등록(2.aar 파일 프로젝트 등록) (0) | 2017.09.26 |