[go: up one dir, main page]

Skip to content

Android 图片预览,支持缩放、手势旋转、拖动退出预览。

Notifications You must be signed in to change notification settings

zywudev/PhotoViewEx

Repository files navigation

PhotoViewEx

基于 PhotoView,增加手势旋转、拖动退出预览功能。

效果

依赖

在项目 build.gradle 中添加依赖

allprojects {
	repositories {
        maven { url "https://jitpack.io" }
    }
}

module 的 build.gradle 中添加依赖

dependencies {
    implementation 'com.github.zywudev:PhotoViewEx:1.0.0'
}

使用方法

使用下面的方式即可实现缩放、双指旋转功能。

<com.wuzy.photoviewex.PhotoView
    android:id="@+id/iv_photo"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
PhotoView photoView = (PhotoView) findViewById(R.id.iv_photo);
photoView.setImageResource(R.drawable.image);

拖动关闭使用方法

1、Activity 主题设为透明

<item name="android:windowIsTranslucent">true</item>

2、初始化

DragCloseHelper mDragCloseHelper = new DragCloseHelper(this);

3、设置需要拖拽的 View 以及背景 ViewGroup

mDragCloseHelper.setDragCloseViews(mConstraintLayout,mPhotoView);

4、设置监听

mDragCloseHelper.setOnDragCloseListener(new OnDragCloseListener() {
    @Override
    public void onDragBegin() {

    }

    @Override
    public void onDragging(float percent) {

    }

    @Override
    public void onDragEnd(boolean isShareElementMode) {
        if (isShareElementMode) {
            onBackPressed();
        }
    }

    @Override
    public void onDragCancel() {

    }

    @Override
    public boolean intercept() {
        // 默认false
        return false;
    }
});

5、处理 Touch 事件

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (mDragCloseHelper.handleEvent(ev)) {
        return true;
    } else {
        return super.dispatchTouchEvent(ev);
    }
}

更多使用方法参见 sample

参考