天天看點

[PhotoView]鮮為人知的使用

Android Zoom ImageView 開源庫位址:

PhotoView

我們知道輕按兩下PhotoView能夠縮放圖檔,有時候需要響應單擊事件,比如類似朋友圈裡的圖文Feed流,輕按兩下圖檔實作縮放,單擊圖檔隐藏ToolBar等控件:

[PhotoView]鮮為人知的使用

這樣的滑動圖檔浏覽效果我們可以通過

ViewPager

PhotoView

實作,為了響應單擊事件,需要使用到

PhotoViewAttacher

,代碼如下:

mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
                @Override
                public void onViewTap(View view, float x, float y) {
                    // 隐藏Toolbar等操作
                }
            });
           

注意:這裡的

ViewPager

需要自定義一個View,繼承ViewPager,并重寫

onInterceptTouchEvent

方法,防止與

PhotoView

的觸摸事件沖突發生錯誤:

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class PhotoViewPager extends ViewPager {

    public PhotoViewPager(Context context) {
        super(context);
    }

    public PhotoViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (IllegalArgumentException e) {
            return false;
        }
    }

}