안녕하세요!! @wonnieyoon입니다.
위의 사진이 많이 익숙하신가요? 바로 play 스토어 첫화면입니다.
보시는것처럼 화면이 부드럽게 터치를 하면 슬라이드형식으로 넘어가게 됩니다.
안드로이드 화면전달에는 많은 방법이 있습니다.
그중에서 저는 오늘 viewPager에 대해 포스팅하겠습니다.
viewPager란
뷰(view)를 좌,우 페이지가 필요할때
그때마다 view를 그리는 방식입니다.
코드
<MainActivity.java>
public class MainActivity extends AppCompatActivity {
private int index = 0;
private Button b1,b2;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button)findViewById(R.id.button1);
b2 = (Button)findViewById(R.id.button2);
viewPager = (ViewPager) findViewById(R.id.viewPager);
ImageAdapter adapter = new ImageAdapter(this);
viewPager.setAdapter(adapter);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(index != 0)
{
index = index-1;
viewPager.setCurrentItem(index);
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(index !=3)
{
index = index+1;
viewPager.setCurrentItem(index);
}
}
});
}
}
<ImageAdapter.java>
public class ImageAdapter extends PagerAdapter {
Context context;
private final int[] drawableImgs = new int[]
{
R.drawable.number1,
R.drawable.number2,
R.drawable.number3
};
ImageAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return drawableImgs.length;
}
@Override
public boolean isViewFromObject(View pager, Object object) {
return pager == 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);
}
}
결과
<도움받은 글>