2011-12-16 18 views
8

Tôi đã có một ViewPager do ImageViews thực hiện như thế này:Android ViewPager với ImageView Zoomable

@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; 
    } 

Bất kỳ cơ hội tôi có thể có mà ImageView Zoomable bởi chạm đúp (và swipe hình ảnh) hoặc véo Zoomable?

Trả lời

6

Có thể, đây là cách tôi đã làm.

Phần tử bố cục cấp cao nhất của tôi là FrameLayout cho phép một số chế độ xem được xếp chồng lên nhau. FrameLayout có hai trẻ em: ViewPagerImageView mà tôi sẽ sử dụng để hiển thị hình ảnh được phóng to.

ImageView thường bị ẩn. Tôi lắng nghe các sự kiện liên lạc trên các hình ảnh bên trong ViewPager và dựa trên những hình ảnh đó, hiển thị và ẩn và xoay ImageView. Nó hoạt động khá tốt. Tôi có thể cung cấp thêm chi tiết nếu cần.

+2

Thêm chi tiết thực sự hữu ích. –

+2

Bạn có thể chia sẻ thêm chi tiết .. – arjoan

+0

Thông tin chi tiết sẽ hữu ích – Piotr

2

Tôi đã sử dụng lớp TouchImageView bởi Mike Ortiz. Nó không hoàn hảo. Nhưng nó thật tuyệt vì bạn có thể thả nó thật dễ dàng! Hoạt ảnh thu phóng kép nhấn có thể vui nhộn. Việc thu nhỏ chụm có thể được kích hoạt thông qua các lần nhấn đôi lạ.

Nó hoạt động thực sự tốt nếu bạn thả thẳng vào ViewPager (thông qua lớp bộ điều hợp). Khi phóng to, bạn có thể tự do di chuyển sang trái và sang phải mà không kích hoạt thay đổi trang trừ khi bạn ở ngay trên cạnh, điều này thực sự tuyệt vời!

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

+0

Lớp TouchImageView thực sự là một trình tiết kiệm cuộc sống! –