通过操作canvas实现的可缩放(Zoomable)的recyclerView,可用于漫画app的阅读界面。
支持:
- 多指缩放
- 双击缩放
- 数据为空时显示emptyView
- 开放单击的接口
缺陷:
- 不能按中心缩放
- 放大后滑动距离也变大
git clone https://github.com/Ahaochan/GalleryView
cd GalleryView
./gradlew build
<dependency>
<groupId>com.ahaochan</groupId>
<artifactId>GalleryView</artifactId>
<version>0.0.1</version>
<type>pom</type>
</dependency>
compile 'com.ahaochan:GalleryView:0.0.1'
<dependency org='com.ahaochan' name='GalleryView' rev='0.0.1'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
<FrameLayout >
<com.ahao.galleryview.GalleryView
android:id="@+id/view_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:minScaleFactor="1.0"
app:maxScaleFactor="4.0"
app:autoScaleTime="5"
>
</com.ahao.galleryview.GalleryView>
<include layout="@layout/view_empty"/>
<include layout="@layout/view_setting"/>
</FrameLayout>
galleryView.setEmptyView(emptyView);
galleryView.setAdapter(adapter);
galleryView.setOnGestureListener(new GalleryView.OnGestureListener() {
@Override
public boolean onScale(ScaleGestureDetector detector) {
settingView.setVisibility(View.GONE);
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
settingView.setVisibility(settingView.getVisibility()==View.VISIBLE?View.GONE:View.VISIBLE);
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
settingView.setVisibility(View.GONE);
return true;
}
});