2011-12-16 2 views
8

안드로이드 ViewPager :I는 다음과 같이 구현 ImageViews 만든 ViewPager있어 줌이 이미지 뷰

@Override 
    public Object instantiateItem(View collection, int position) { 
     ImageView iv = new ImageView(ctx); 
     if (pageList.size() > position) 
      iv.setImageBitmap(pageList.get(position)); 
     else 
      iv.setImageResource(R.drawable.loading); 

     iv.setOnTouchListener(this); 
     ((ViewPager) collection).addView(iv, 0); 
     System.out.println("POS: " + position); 
     return iv; 
    } 

내가 더블 탭하여 그 이미지 뷰의 줌이 있습니다 (이미지 슬쩍) 또는 줌이 끼지 수있는 모든 기회를?

답변

6

가능한 방법은 다음과 같습니다.

내 최상위 레이아웃 요소는 여러보기를 서로 위에 쌓을 수있는 FrameLayout입니다. FrameLayout에는 확대 된 그림을 표시 할 때 사용하는 ViewPagerImageView이라는 두 개의 하위 항목이 있습니다.

일반적으로 ImageView는 숨겨져 있습니다. 나는 ViewPager 안에있는 사진들에 터치 이벤트를 듣고 그걸 기반으로 ImageView를 보여 주거나 감추고 팬합니다. 그것은 꽤 잘 작동합니다. 필요한 경우 세부 정보를 제공 할 수 있습니다.

+2

자세한 내용은 실제로 도움이 될 것입니다. –

+2

자세한 내용을 공유해주세요. – arjoan

+0

자세한 내용은 유용 할 것입니다. – Piotr

2

나는 Mike Ortiz의 TouchImageView 클래스를 사용했습니다. 완벽하지는 않습니다. 그러나 당신이 정말로 쉽게 그것을 떨어 뜨릴 수 있기 때문에 그것은 멋지다! 더블 탭 줌 애니메이션은 재미있을 수 있습니다. 핀치 줌은 이상한 더블 탭을 통해 트리거 될 수 있습니다.

(어댑터 클래스를 통해) ViewPager에 바로 놓으면 정말 잘 돌아갑니다. 확대했을 때 페이지 변경을 트리거하지 않고 좌우로 자유롭게 이동할 수 있습니다 이 오른쪽에 있지 않으면 정말 멋집니다!

https://github.com/MikeOrtiz/TouchImageView/blob/master/src/com/ortiz/touch/TouchImageView.java

+0

TouchImageView 클래스는 정말 생명의 은인입니다! –

관련 문제