상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - ViewPager에서 페이지 전환 시 스타일 변경하기.
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
ViewPager에서 페이지 전환 시 스타일을 변경하는 방법은 여러 가지가 있습니다. 아래에서는 Android에서 ViewPager를 사용해 페이지 전환 시 스타일을 변경하는 기본적인 예제를 설명하겠습니다. 1. ViewPager 설정하기 먼저, ViewPager와 FragmentPagerAdapter를 설정해야 합니다. 여기서는 기본적인 ViewPager와 Fragment를 사용하여 여러 페이지를 표시합니다. build.gradle 수정 ```gradle dependencies { implementation 'androidx.viewpager2:viewpager2:1.0.0' } ``` 레이아웃 파일 설정 (activity_main.xml) ```xml <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` Fragment 생성 (SampleFragment.j<a href='https://sangseek.com/sangseeks/ava/ko'>ava</a>) ```java public class SampleFragment extends Fragment { private static final String ARG_COLOR = "color"; public static SampleFragment newInstance(int color) { SampleFragment fragment = new SampleFragment(); Bundle args = new Bundle(); args.putInt(ARG_COLOR, color); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_sample, container, false); view.setBackgroundColor(getArguments().getInt(ARG_COLOR)); return view; } } ``` Fragment 레이아웃 (fragment_sample.xml) ```xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> ``` 2. ViewPager Adapter 설정 ```java public class MyFragmentStateAdapter extends FragmentStateAdapter { private final int[] colors = {Color.RED, Color.GREEN, Color.BLUE}; public MyFragmentStateAdapter(FragmentActivity fa) { super(fa); } @Override public Fragment createFragment(int position) { return SampleFragment.newInstance(colors[position % colors.length]); } @Override public int getItemCount() { return colors.length; } } ``` 3. PageTransformer 구현 페이지 전환 시 스타일을 변경하기 위해 `ViewPager.PageTransformer`를 구현합니다. ```java public class ZoomOutPageTransformer implements ViewPager2.PageTransformer { @Override public void transformPage(@NonNull View page, float position) { if (position < -1) { // [-Infinity,-1) page.setAlpha(0); } else if (position <= 1) { // [-1,1] float scaleFactor = Math.max(0.85f, 1 - Math.abs(position)); page.setScaleY(scaleFactor); page.setAlpha(scaleFactor); } else { // (1,+Infinity] page.setAlpha(0); } } } ``` 4. MainActivity 설정 마지막으로 MainActivity에서 ViewPager와 Adapter를 연결하고 PageTransformer를 적용합니다. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager2 viewPager = findViewById(R.id.viewPager); MyFragmentStateAdapter adapter = new MyFragmentStateAdapter(this); viewPager.setAdapter(adapter); viewPager.setPageTransformer(new ZoomOutPageTransformer()); // 페이지 변환 효과 적용 } } ``` 5. 결과 확인 위의 코드를 통합하면 ViewPager에서 페이지를 전환할 때 ZoomOut 효과가 적용됩니다. 이와 같은 방법으로 다양한 효과 (예: Fade, Slide 등)를 적용할 수 있습니다. 결론 위 예제에서는 ViewPager 페이지 전환 시 스타일을 변경하는 방법에 대해 설명했습니다. `ViewPager.PageTransformer`를 구현하여 페이지 전환 시의 애니메이션 효과를 쉽게 조정할 수 있습니다. 필요에 따라 다른 효과를 시도해 보세요!
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기