带有手势控制的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.