English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android viewpager 3D 갤러리 구현 방법

ViewPager에는 다음과 같은 메서드가 있습니다:

setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)

ViewPager의 전환 시 애니메이션 효과를 설정하는 데 사용됩니다.

여기서는 필요한 애니메이션 오프셋 효과를 구현하기 위해 PageTransformer를 사용자 정의하는 것에 불과합니다!

public class ScrollOffsetTransformer implements PageTransformer {
  private static final float MIN_SCALE = 0.85F;
  /**
   * position 매개변수는 주어진 페이지가 화면 중심에 대한 위치를 나타냅니다. 이는 페이지가 스크롤됨에 따라 변하는 동적 속성입니다.
   * 하나의 페이지(page)가 전체 화면을 채우면 position 값은 0입니다; 하나의 페이지(page)이 화면의 우측(좌측)에서刚刚 벗어났을 때 position 값은1(-1);
   * 두 페이지가 각각 절반까지 스크롤될 때, 하나의 페이지는-0.5,다른 페이지는 0입니다.5。
   * 화면 상의 페이지 위치를 기반으로 setAlpha()、setTranslationX와 같은 메서드를 통해
   * () 또는 setScaleY() 메서드를 사용하여 페이지의 속성을 설정하고, 사용자 정의 스크롤 애니메이션을 생성하십시오.
   */
  @Override
  public void transformPage(View view, float position) {
    // TODO Auto-generated method stub
    float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
    float rotate = 30 * Math.abs(position);
    float transla = 50 * Math.abs(position);
    if (position > 0) {
      view.setScaleX(scaleFactor);
      view.setScaleY(scaleFactor);
      view.setRotationY(-rotate);
      view.setTranslationX(-transla);
    } else {
      view.setScaleX(scaleFactor);
      view.setScaleY(scaleFactor);
      view.setRotationY(rotate);
      view.setTranslationX(transla);
    }
  }
}

그런 다음

viewPager

추가로

 viewPager.setPageTransformer(true, new ScrollOffsetTransformer())

위에서 소개한 Android ViewPager 3D 갤러리의 구현 방법을 소개하여 많은 사람들에게 도움이 되길 바랍니다. 어떤 질문이나 의문이 있으면 댓글을 달아 주시고, 편집자가 즉시 답변을 드리겠습니다. 또한,呐喊 교본 사이트에 대한 많은 지지에 감사드립니다!

선언: 본 내용은 인터넷에서 가져왔으며, 저작권자는 모두입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공 편집을 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용이 있으면 이메일을 notice#w로 보내 주시기 바랍니다.3codebox.com에 이메일을 보내면 (#을 @으로 변경하시오) 신고를 해 주시고 관련 증거를 제공하시면, 해당 사이트는 즉시 저작권 침해 내용을 삭제할 것입니다. 확인되면 즉시 처리됩니다.

추천 합니다