基于 PhotoView,增加手势旋转、拖动退出预览功能。
GitHub:PhotoViewEx
依赖
在项目 build.gradle
中添加依赖
1 2 3 4 5
| allprojects { repositories { maven { url "https://jitpack.io" } } }
|
module 的 build.gradle
中添加依赖
1 2 3
| dependencies { implementation 'com.github.zywudev:PhotoViewEx:1.0.0' }
|
使用方法
使用下面的方式即可实现缩放、双指旋转功能。
1 2 3 4
| <com.wuzy.photoviewex.PhotoView android:id="@+id/iv_photo" android:layout_width="match_parent" android:layout_height="match_parent"/>
|
1 2
| PhotoView photoView = (PhotoView) findViewById(R.id.iv_photo); photoView.setImageResource(R.drawable.image);
|
拖动关闭使用方法:
1、Activity 主题设为透明
1
| <item name="android:windowIsTranslucent">true</item>
|
2、初始化
1
| DragCloseHelper mDragCloseHelper = new DragCloseHelper(this);
|
3、设置需要拖拽的 View 以及背景 ViewGroup
1
| mDragCloseHelper.setDragCloseViews(mConstraintLayout,mPhotoView);
|
4、设置监听
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 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() { return false; } });
|
5、处理 Touch 事件
1 2 3 4 5 6 7 8
| @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (mDragCloseHelper.handleEvent(ev)) { return true; } else { return super.dispatchTouchEvent(ev); } }
|
更多使用方法参见 sample。
参考