带有手势控制的ImageView和FrameLayout:GestureViews
jopen
10年前
带有手势控制和位置动画的ImageView和FrameLayout。这个库的目的是让图片查看尽可能流畅和方便,同时方便开发者把它集成到自己的项目中。
Usage
Add dependency to yourbuild.gradlefile:
compile 'com.alexvasilkov:gesture-views:2.0.0'
Just addGestureImageViewto your layout:
<com.alexvasilkov.gestures.views.GestureImageView android:layout_width="match_parent" android:layout_height="match_parent" />
Or addGestureFrameLayout:
<com.alexvasilkov.gestures.views.GestureFrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!-- GestureFrameLayout can contain only one child --> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Layout content goes here --> </FrameLayout> </com.alexvasilkov.gestures.views.GestureFrameLayout>
Setup
GestureViewscan be customised usinggestureView.getController().getSettings():
gestureView.getController().getSettings() .setMaxZoom(2f) .setPanEnabled(true) .setZoomEnabled(true) .setDoubleTapEnabled(true) .setRotationEnabled(false) .setOverscrollDistance(0f, 0f) .setOverzoomFactor(2f) .setFillViewport(false) .setFitMethod(Settings.Fit.INSIDE) .setGravity(Gravity.CENTER);
Note: example above shows default values, you will not need to set them yourself.
See also full settings list with descriptions.
ViewPager
If you plan to useGestureViewsinsideViewPageryou should additionally call:
gestureView.getController().enableScrollInViewPager(viewPager);
Listeners
You can listen for state changes (position, zoom, rotation):
addOnStateChangeListener(OnStateChangeListener listener) removeOnStateChangeListener(OnStateChangeListener listener)
You can also listen for additional gestures:
- onDown
- onSingleTapUp
- onSingleTapConfirmed
- onLongPress
- onDoubleTap
with:
setOnGesturesListener(OnGestureListener listener)
Animations
See Basic animations and Advanced animations pages for more info.
Custom views
See Custom views page.