Package com.jsibbold.zoomage
Class ZoomageView
- java.lang.Object
-
- android.view.View
-
- android.widget.ImageView
-
- androidx.appcompat.widget.AppCompatImageView
-
- com.jsibbold.zoomage.ZoomageView
-
- All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback
,android.view.accessibility.AccessibilityEventSource
,android.view.KeyEvent.Callback
,android.view.ScaleGestureDetector.OnScaleGestureListener
,androidx.core.view.TintableBackgroundView
,androidx.core.widget.TintableImageSourceView
public class ZoomageView extends androidx.appcompat.widget.AppCompatImageView implements android.view.ScaleGestureDetector.OnScaleGestureListener
ZoomageView is a pinch-to-zoom extension ofImageView
, providing a smooth user experience and a very natural feel when zooming and translating. It also supports automatic resetting, and allows for exterior bounds restriction to keep the image within visible window.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class android.widget.ImageView
android.widget.ImageView.ScaleType
-
Nested classes/interfaces inherited from class android.view.View
android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener
-
-
Field Summary
-
Fields inherited from class android.view.View
ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z
-
-
Constructor Summary
Constructors Constructor Description ZoomageView(android.content.Context context)
ZoomageView(android.content.Context context, android.util.AttributeSet attrs)
ZoomageView(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
-
Method Summary
Modifier and Type Method Description protected boolean
allowTranslate(android.view.MotionEvent event)
protected boolean
allowZoom(android.view.MotionEvent event)
protected boolean
disallowParentTouch(android.view.MotionEvent event)
boolean
getAnimateOnReset()
Returns status of animateOnReset.boolean
getAutoCenter()
Whether or not the image should automatically center itself when it's dragged partially or fully out of view.int
getAutoResetMode()
Get the currentAutoResetMode
mode of the image.float
getCurrentScaleFactor()
Get the current scale factor of the image, in relation to its starting size.boolean
getDoubleTapToZoom()
Gets double tap to zoom state.float
getDoubleTapToZoomScaleFactor()
Gets the double tap to zoom scale factor.boolean
getRestrictBounds()
If restricted bounds are enabled, the image will not be allowed to translate farther inward than the edges of the view's bounds, unless the corresponding dimension (width or height) is smaller than those of the view's frame.boolean
isTranslatable()
Returns whether the image is translatable.boolean
isZoomable()
Returns the zoomable state of the image.boolean
onScale(android.view.ScaleGestureDetector detector)
boolean
onScaleBegin(android.view.ScaleGestureDetector detector)
void
onScaleEnd(android.view.ScaleGestureDetector detector)
boolean
onTouchEvent(android.view.MotionEvent event)
void
reset()
Reset image back to its original size.void
reset(boolean animate)
Reset image back to its starting size.void
setAnimateOnReset(boolean animateOnReset)
Set whether or not the image should animate when resetting.void
setAutoCenter(boolean autoCenter)
Set whether or not the image should automatically center itself when it's dragged partially or fully out of view.void
setAutoResetMode(int autoReset)
Set theAutoResetMode
mode for the image.void
setDoubleTapToZoom(boolean doubleTapToZoom)
Sets double tap to zoom state.void
setDoubleTapToZoomScaleFactor(float doubleTapToZoomScaleFactor)
Sets the double tap to zoom scale factor.void
setEnabled(boolean enabled)
Set enabled state of the view.void
setImageBitmap(android.graphics.Bitmap bm)
void
setImageDrawable(android.graphics.drawable.Drawable drawable)
void
setImageResource(int resId)
void
setImageURI(android.net.Uri uri)
void
setRestrictBounds(boolean restrictBounds)
Set the restrictBounds status of the image.void
setScaleRange(float minScale, float maxScale)
Set the minimum and maximum allowed scale for zooming.void
setScaleType(android.widget.ImageView.ScaleType scaleType)
void
setTranslatable(boolean translatable)
Set the image's translatable state.void
setZoomable(boolean zoomable)
Set the zoomable state of the image.-
Methods inherited from class androidx.appcompat.widget.AppCompatImageView
drawableStateChanged, getSupportBackgroundTintList, getSupportBackgroundTintMode, getSupportImageTintList, getSupportImageTintMode, hasOverlappingRendering, setBackgroundDrawable, setBackgroundResource, setSupportBackgroundTintList, setSupportBackgroundTintMode, setSupportImageTintList, setSupportImageTintMode
-
Methods inherited from class android.widget.ImageView
clearColorFilter, drawableHotspotChanged, getAccessibilityClassName, getAdjustViewBounds, getBaseline, getBaselineAlignBottom, getColorFilter, getCropToPadding, getDrawable, getImageAlpha, getImageMatrix, getImageTintList, getImageTintMode, getMaxHeight, getMaxWidth, getScaleType, invalidateDrawable, isOpaque, jumpDrawablesToCurrentState, onAttachedToWindow, onCreateDrawableState, onDetachedFromWindow, onDraw, onMeasure, onRtlPropertiesChanged, onVisibilityAggregated, setAdjustViewBounds, setAlpha, setBaseline, setBaselineAlignBottom, setColorFilter, setColorFilter, setColorFilter, setCropToPadding, setFrame, setImageAlpha, setImageIcon, setImageLevel, setImageMatrix, setImageState, setImageTintList, setImageTintMode, setMaxHeight, setMaxWidth, setSelected, setVisibility, verifyDrawable
-
Methods inherited from class android.view.View
addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addFocusables, addKeyboardNavigationClusters, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, addTouchables, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearFocus, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchGenericFocusedEvent, dispatchGenericMotionEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPointerCaptureChanged, dispatchPopulateAccessibilityEvent, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, draw, findFocus, findViewById, findViewsWithText, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getApplicationWindowToken, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintList, getBackgroundTintMode, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getImportantForAccessibility, getImportantForAutofill, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverlay, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocus, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasPointerCapture, hasTransientState, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, layout, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDisplayHint, onDragEvent, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onLayout, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideStructure, onProvideVirtualStructure, onResolvePointerIcon, onRestoreInstanceState, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTrackballEvent, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreDefaultFocus, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForeground, setForegroundGravity, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSoundEffectsEnabled, setStateListAnimator, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionName, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, unscheduleDrawable, unscheduleDrawable, updateDragShadow, willNotCacheDrawing, willNotDraw
-
-
-
-
Method Detail
-
setScaleRange
public void setScaleRange(float minScale, float maxScale)
Set the minimum and maximum allowed scale for zooming.minScale
cannot be greater thanmaxScale
and neither can be 0 or less. This will result in anIllegalStateException
.- Parameters:
minScale
- minimum allowed scalemaxScale
- maximum allowed scale
-
isTranslatable
public boolean isTranslatable()
Returns whether the image is translatable.- Returns:
- true if translation of image is allowed, false otherwise
-
setTranslatable
public void setTranslatable(boolean translatable)
Set the image's translatable state.- Parameters:
translatable
- true to enable translation, false to disable it
-
isZoomable
public boolean isZoomable()
Returns the zoomable state of the image.- Returns:
- true if pinch-zooming of the image is allowed, false otherwise.
-
setZoomable
public void setZoomable(boolean zoomable)
Set the zoomable state of the image.- Parameters:
zoomable
- true to enable pinch-zooming of the image, false to disable it
-
getRestrictBounds
public boolean getRestrictBounds()
If restricted bounds are enabled, the image will not be allowed to translate farther inward than the edges of the view's bounds, unless the corresponding dimension (width or height) is smaller than those of the view's frame.- Returns:
- true if image bounds are restricted to the view's edges, false otherwise
-
setRestrictBounds
public void setRestrictBounds(boolean restrictBounds)
Set the restrictBounds status of the image. If restricted bounds are enabled, the image will not be allowed to translate farther inward than the edges of the view's bounds, unless the corresponding dimension (width or height) is smaller than those of the view's frame.- Parameters:
restrictBounds
- true if image bounds should be restricted to the view's edges, false otherwise
-
getAnimateOnReset
public boolean getAnimateOnReset()
Returns status of animateOnReset. This causes the image to smoothly animate back to its start position when reset. Default value is true.- Returns:
- true if animateOnReset is enabled, false otherwise
-
setAnimateOnReset
public void setAnimateOnReset(boolean animateOnReset)
Set whether or not the image should animate when resetting.- Parameters:
animateOnReset
- true if image should animate when resetting, false to snap
-
getAutoResetMode
public int getAutoResetMode()
Get the currentAutoResetMode
mode of the image. Default value isAutoResetMode.UNDER
.- Returns:
- the current
AutoResetMode
mode, one ofOVER
,UNDER
,ALWAYS
, orNEVER
-
setAutoResetMode
public void setAutoResetMode(int autoReset)
Set theAutoResetMode
mode for the image.
-
getAutoCenter
public boolean getAutoCenter()
Whether or not the image should automatically center itself when it's dragged partially or fully out of view.- Returns:
- true if image should center itself automatically, false if it should not
-
setAutoCenter
public void setAutoCenter(boolean autoCenter)
Set whether or not the image should automatically center itself when it's dragged partially or fully out of view.- Parameters:
autoCenter
- true if image should center itself automatically, false if it should not
-
getDoubleTapToZoom
public boolean getDoubleTapToZoom()
Gets double tap to zoom state.- Returns:
- whether double tap to zoom is enabled
-
setDoubleTapToZoom
public void setDoubleTapToZoom(boolean doubleTapToZoom)
Sets double tap to zoom state.- Parameters:
doubleTapToZoom
- true if double tap to zoom should be enabled
-
getDoubleTapToZoomScaleFactor
public float getDoubleTapToZoomScaleFactor()
Gets the double tap to zoom scale factor.- Returns:
- double tap to zoom scale factor
-
setDoubleTapToZoomScaleFactor
public void setDoubleTapToZoomScaleFactor(float doubleTapToZoomScaleFactor)
Sets the double tap to zoom scale factor. Can be a maximum of max scale.- Parameters:
doubleTapToZoomScaleFactor
- the scale factor you want to zoom to when double tap occurs
-
getCurrentScaleFactor
public float getCurrentScaleFactor()
Get the current scale factor of the image, in relation to its starting size.- Returns:
- the current scale factor
-
setScaleType
public void setScaleType(@Nullable android.widget.ImageView.ScaleType scaleType)
- Overrides:
setScaleType
in classandroid.widget.ImageView
-
setEnabled
public void setEnabled(boolean enabled)
Set enabled state of the view. Note that this will reset the image'sImageView.ScaleType
to its pre-zoom state.- Overrides:
setEnabled
in classandroid.view.View
- Parameters:
enabled
- enabled state
-
setImageResource
public void setImageResource(int resId)
- Overrides:
setImageResource
in classandroidx.appcompat.widget.AppCompatImageView
-
setImageDrawable
public void setImageDrawable(@Nullable android.graphics.drawable.Drawable drawable)
- Overrides:
setImageDrawable
in classandroidx.appcompat.widget.AppCompatImageView
-
setImageBitmap
public void setImageBitmap(android.graphics.Bitmap bm)
- Overrides:
setImageBitmap
in classandroidx.appcompat.widget.AppCompatImageView
-
setImageURI
public void setImageURI(@Nullable android.net.Uri uri)
- Overrides:
setImageURI
in classandroidx.appcompat.widget.AppCompatImageView
-
onTouchEvent
public boolean onTouchEvent(android.view.MotionEvent event)
- Overrides:
onTouchEvent
in classandroid.view.View
-
disallowParentTouch
protected boolean disallowParentTouch(android.view.MotionEvent event)
-
allowTranslate
protected boolean allowTranslate(android.view.MotionEvent event)
-
allowZoom
protected boolean allowZoom(android.view.MotionEvent event)
-
reset
public void reset()
Reset image back to its original size. Will snap back to original size if animation on reset is disabled viasetAnimateOnReset(boolean)
.
-
reset
public void reset(boolean animate)
Reset image back to its starting size. Ifanimate
is false, image will snap back to its original size.- Parameters:
animate
- animate the image back to its starting size
-
onScale
public boolean onScale(android.view.ScaleGestureDetector detector)
- Specified by:
onScale
in interfaceandroid.view.ScaleGestureDetector.OnScaleGestureListener
-
onScaleBegin
public boolean onScaleBegin(android.view.ScaleGestureDetector detector)
- Specified by:
onScaleBegin
in interfaceandroid.view.ScaleGestureDetector.OnScaleGestureListener
-
onScaleEnd
public void onScaleEnd(android.view.ScaleGestureDetector detector)
- Specified by:
onScaleEnd
in interfaceandroid.view.ScaleGestureDetector.OnScaleGestureListener
-
-