public class CropImageView
extends android.widget.FrameLayout
| Modifier and Type | Class and Description |
|---|---|
static class |
CropImageView.CropResult
Result data of crop image.
|
static class |
CropImageView.CropShape
The possible cropping area shape.
To set square/circle crop shape set aspect ratio to 1:1. |
static class |
CropImageView.Guidelines
The possible guidelines showing types.
|
static interface |
CropImageView.OnCropImageCompleteListener
Interface definition for a callback to be invoked when image async crop is complete.
|
static interface |
CropImageView.OnSetCropOverlayMovedListener
Interface definition for a callback to be invoked when the crop overlay is released.
|
static interface |
CropImageView.OnSetCropOverlayReleasedListener
Interface definition for a callback to be invoked when the crop overlay is released.
|
static interface |
CropImageView.OnSetCropWindowChangeListener
Interface definition for a callback to be invoked when the crop overlay is released.
|
static interface |
CropImageView.OnSetImageUriCompleteListener
Interface definition for a callback to be invoked when image async loading is complete.
|
static class |
CropImageView.RequestSizeOptions
Possible options for handling requested width/height for cropping.
|
static class |
CropImageView.ScaleType
Options for scaling the bounds of cropping image to the bounds of Crop Image View.
Note: Some options are affected by auto-zoom, if enabled. |
android.widget.FrameLayout.LayoutParamsandroid.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListenerandroid.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.OnUnhandledKeyEventListenerCLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHEACCESSIBILITY_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 and Description |
|---|
CropImageView(android.content.Context context) |
CropImageView(android.content.Context context,
android.util.AttributeSet attrs) |
| Modifier and Type | Method and Description |
|---|---|
void |
clearAspectRatio()
Clears set aspect ratio values and sets fixed aspect ratio to FALSE.
|
void |
clearImage()
Clear the current image set for cropping.
|
void |
flipImageHorizontally()
Flips the image horizontally.
|
void |
flipImageVertically()
Flips the image vertically.
|
android.util.Pair<java.lang.Integer,java.lang.Integer> |
getAspectRatio()
both the X and Y values of the aspectRatio.
|
android.graphics.Bitmap |
getCroppedImage()
Gets the cropped image based on the current crop window.
|
android.graphics.Bitmap |
getCroppedImage(int reqWidth,
int reqHeight)
Gets the cropped image based on the current crop window.
Uses CropImageView.RequestSizeOptions.RESIZE_INSIDE option. |
android.graphics.Bitmap |
getCroppedImage(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
Gets the cropped image based on the current crop window.
|
void |
getCroppedImageAsync()
Gets the cropped image based on the current crop window.
The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
getCroppedImageAsync(int reqWidth,
int reqHeight)
Gets the cropped image based on the current crop window.
Uses CropImageView.RequestSizeOptions.RESIZE_INSIDE option.The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
getCroppedImageAsync(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
Gets the cropped image based on the current crop window.
The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
float[] |
getCropPoints()
Gets the 4 points of crop window's position relative to the source Bitmap (not the image
displayed in the CropImageView) using the original image rotation.
Note: the 4 points may not be a rectangle if the image was rotates to NOT stright angle (!= 90/180/270). |
android.graphics.Rect |
getCropRect()
Gets the crop window's position relative to the source Bitmap (not the image displayed in the
CropImageView) using the original image rotation.
|
CropImageView.CropShape |
getCropShape()
The shape of the cropping area - rectangle/circular.
|
android.graphics.RectF |
getCropWindowRect()
Gets the crop window's position relative to the parent's view at screen.
|
CropImageView.Guidelines |
getGuidelines()
Get the current guidelines option set.
|
int |
getImageResource()
Returns the integer of the imageResource
|
android.net.Uri |
getImageUri()
Get the URI of an image that was set by URI, null otherwise.
|
int |
getMaxZoom()
The max zoom allowed during cropping.
|
int |
getRotatedDegrees()
Get the amount of degrees the cropping image is rotated cloackwise.
|
CropImageView.ScaleType |
getScaleType()
Get the scale type of the image in the crop view.
|
android.graphics.Rect |
getWholeImageRect()
Gets the source Bitmap's dimensions.
|
boolean |
isAutoZoomEnabled()
if auto-zoom functionality is enabled.
|
boolean |
isFixAspectRatio()
whether the aspect ratio is fixed or not; true fixes the aspect ratio, while false allows it to
be changed.
|
boolean |
isFlippedHorizontally()
whether the image should be flipped horizontally
|
boolean |
isFlippedVertically()
whether the image should be flipped vertically
|
boolean |
isSaveBitmapToInstanceState()
if to save bitmap on save instance state.
It is best to avoid it by using URI in setting image for cropping. If false the bitmap is not saved and if restore is required to view will be empty, storing the bitmap requires saving it to file which can be expensive. |
boolean |
isShowCropOverlay()
if to show crop overlay UI what contains the crop window UI surrounded by background over the
cropping image.
default: true, may disable for animation or frame transition. |
boolean |
isShowProgressBar()
if to show progress bar when image async loading/cropping is in progress.
default: true, disable to provide custom progress bar UI. |
protected void |
onLayout(boolean changed,
int l,
int t,
int r,
int b) |
protected void |
onMeasure(int widthMeasureSpec,
int heightMeasureSpec) |
void |
onRestoreInstanceState(android.os.Parcelable state) |
android.os.Parcelable |
onSaveInstanceState() |
protected void |
onSizeChanged(int w,
int h,
int oldw,
int oldh)
Detect size change to handle auto-zoom using
handleCropWindowChanged(boolean, boolean)
in ViewGroup.layout(int, int, int, int). |
void |
resetCropRect()
Reset crop window to initial rectangle.
|
void |
rotateImage(int degrees)
Rotates image by the specified number of degrees clockwise.
Negative values represent counter-clockwise rotations. |
void |
saveCroppedImageAsync(android.net.Uri saveUri)
Save the cropped image based on the current crop window to the given uri.
Uses JPEG image compression with 90 compression quality. The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality)
Save the cropped image based on the current crop window to the given uri.
The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality,
int reqWidth,
int reqHeight)
Save the cropped image based on the current crop window to the given uri.
Uses CropImageView.RequestSizeOptions.RESIZE_INSIDE option.The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality,
int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
Save the cropped image based on the current crop window to the given uri.
The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
void |
setAspectRatio(int aspectRatioX,
int aspectRatioY)
Sets the both the X and Y values of the aspectRatio.
Sets fixed aspect ratio to TRUE. |
void |
setAutoZoomEnabled(boolean autoZoomEnabled)
Set auto-zoom functionality to enabled/disabled.
|
void |
setCropRect(android.graphics.Rect rect)
Set the crop window position and size to the given rectangle.
Image to crop must be first set before invoking this, for async - after complete callback. |
void |
setCropShape(CropImageView.CropShape cropShape)
The shape of the cropping area - rectangle/circular.
To set square/circle crop shape set aspect ratio to 1:1. |
void |
setFixedAspectRatio(boolean fixAspectRatio)
Sets whether the aspect ratio is fixed or not; true fixes the aspect ratio, while false allows
it to be changed.
|
void |
setFlippedHorizontally(boolean flipHorizontally)
Sets whether the image should be flipped horizontally
|
void |
setFlippedVertically(boolean flipVertically)
Sets whether the image should be flipped vertically
|
void |
setGuidelines(CropImageView.Guidelines guidelines)
Sets the guidelines for the CropOverlayView to be either on, off, or to show when resizing the
application.
|
void |
setImageBitmap(android.graphics.Bitmap bitmap)
Sets a Bitmap as the content of the CropImageView.
|
void |
setImageBitmap(android.graphics.Bitmap bitmap,
ExifInterface exif)
Sets a Bitmap and initializes the image rotation according to the EXIT data.
The EXIF can be retrieved by doing the following:
ExifInterface exif = new ExifInterface(path); |
void |
setImageResource(int resId)
Sets a Drawable as the content of the CropImageView.
|
void |
setImageUriAsync(android.net.Uri uri)
Sets a bitmap loaded from the given Android URI as the content of the CropImageView.
Can be used with URI from gallery or camera source. Will rotate the image by exif data. |
void |
setMaxCropResultSize(int maxCropResultWidth,
int maxCropResultHeight)
the max size the resulting cropping image is allowed to be, affects the cropping window limits
(in pixels).
|
void |
setMaxZoom(int maxZoom)
The max zoom allowed during cropping.
|
void |
setMinCropResultSize(int minCropResultWidth,
int minCropResultHeight)
the min size the resulting cropping image is allowed to be, affects the cropping window limits
(in pixels).
|
void |
setMultiTouchEnabled(boolean multiTouchEnabled)
Set multi touch functionality to enabled/disabled.
|
void |
setOnCropImageCompleteListener(CropImageView.OnCropImageCompleteListener listener)
Set the callback to be invoked when image async cropping image (
getCroppedImageAsync()
or saveCroppedImageAsync(Uri)) is complete (successful or failed). |
void |
setOnCropWindowChangedListener(CropImageView.OnSetCropWindowChangeListener listener)
Set the callback when the crop window is changed
|
void |
setOnSetCropOverlayMovedListener(CropImageView.OnSetCropOverlayMovedListener listener)
Set the callback when the cropping is moved
|
void |
setOnSetCropOverlayReleasedListener(CropImageView.OnSetCropOverlayReleasedListener listener)
Set the callback t
|
void |
setOnSetImageUriCompleteListener(CropImageView.OnSetImageUriCompleteListener listener)
Set the callback to be invoked when image async loading (
setImageUriAsync(Uri)) is
complete (successful or failed). |
void |
setRotatedDegrees(int degrees)
Set the amount of degrees the cropping image is rotated cloackwise.
|
void |
setSaveBitmapToInstanceState(boolean saveBitmapToInstanceState)
if to save bitmap on save instance state.
It is best to avoid it by using URI in setting image for cropping. If false the bitmap is not saved and if restore is required to view will be empty, storing the bitmap requires saving it to file which can be expensive. |
void |
setScaleType(CropImageView.ScaleType scaleType)
Set the scale type of the image in the crop view
|
void |
setShowCropOverlay(boolean showCropOverlay)
if to show crop overlay UI what contains the crop window UI surrounded by background over the
cropping image.
default: true, may disable for animation or frame transition. |
void |
setShowProgressBar(boolean showProgressBar)
if to show progress bar when image async loading/cropping is in progress.
default: true, disable to provide custom progress bar UI. |
void |
setSnapRadius(float snapRadius)
An edge of the crop window will snap to the corresponding edge of a specified bounding box when
the crop window edge is less than or equal to this distance (in pixels) away from the bounding
box edge.
|
void |
startCropWorkerTask(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options,
android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality)
Gets the cropped image based on the current crop window.
If (reqWidth,reqHeight) is given AND image is loaded from URI cropping will try to use sample size to fit in the requested width and height down-sampling if possible - optimization to get best size to quality. The result will be invoked to listener set by setOnCropImageCompleteListener(OnCropImageCompleteListener). |
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedStateaddChildrenForAccessibility, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, updateViewLayoutaddExtraDataToAccessibilityNodeInfo, addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getApplicationWindowToken, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintList, getBackgroundTintMode, getBaseline, 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, 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, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, 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, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideStructure, onProvideVirtualStructure, onRtlPropertiesChanged, onScreenStateChanged, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, 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, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForeground, 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, setSelected, setSoundEffectsEnabled, setStateListAnimator, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionName, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDrawclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcanResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayoutpublic CropImageView(android.content.Context context)
public CropImageView(android.content.Context context,
android.util.AttributeSet attrs)
public CropImageView.ScaleType getScaleType()
public void setScaleType(CropImageView.ScaleType scaleType)
public CropImageView.CropShape getCropShape()
public void setCropShape(CropImageView.CropShape cropShape)
public boolean isAutoZoomEnabled()
public void setAutoZoomEnabled(boolean autoZoomEnabled)
public void setMultiTouchEnabled(boolean multiTouchEnabled)
public int getMaxZoom()
public void setMaxZoom(int maxZoom)
public void setMinCropResultSize(int minCropResultWidth,
int minCropResultHeight)
public void setMaxCropResultSize(int maxCropResultWidth,
int maxCropResultHeight)
public int getRotatedDegrees()
public void setRotatedDegrees(int degrees)
degrees - 0-360public boolean isFixAspectRatio()
public void setFixedAspectRatio(boolean fixAspectRatio)
public boolean isFlippedHorizontally()
public void setFlippedHorizontally(boolean flipHorizontally)
public boolean isFlippedVertically()
public void setFlippedVertically(boolean flipVertically)
public CropImageView.Guidelines getGuidelines()
public void setGuidelines(CropImageView.Guidelines guidelines)
public android.util.Pair<java.lang.Integer,java.lang.Integer> getAspectRatio()
public void setAspectRatio(int aspectRatioX,
int aspectRatioY)
aspectRatioX - int that specifies the new X value of the aspect ratioaspectRatioY - int that specifies the new Y value of the aspect ratiopublic void clearAspectRatio()
public void setSnapRadius(float snapRadius)
public boolean isShowProgressBar()
public void setShowProgressBar(boolean showProgressBar)
public boolean isShowCropOverlay()
public void setShowCropOverlay(boolean showCropOverlay)
public boolean isSaveBitmapToInstanceState()
public void setSaveBitmapToInstanceState(boolean saveBitmapToInstanceState)
public int getImageResource()
public android.net.Uri getImageUri()
public android.graphics.Rect getWholeImageRect()
public android.graphics.Rect getCropRect()
public android.graphics.RectF getCropWindowRect()
public float[] getCropPoints()
public void setCropRect(android.graphics.Rect rect)
rect - window rectangle (position and size) relative to source bitmappublic void resetCropRect()
public android.graphics.Bitmap getCroppedImage()
public android.graphics.Bitmap getCroppedImage(int reqWidth,
int reqHeight)
CropImageView.RequestSizeOptions.RESIZE_INSIDE option.reqWidth - the width to resize the cropped image toreqHeight - the height to resize the cropped image topublic android.graphics.Bitmap getCroppedImage(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
reqWidth - the width to resize the cropped image to (see options)reqHeight - the height to resize the cropped image to (see options)options - the resize method to use, see its documentationpublic void getCroppedImageAsync()
setOnCropImageCompleteListener(OnCropImageCompleteListener).public void getCroppedImageAsync(int reqWidth,
int reqHeight)
CropImageView.RequestSizeOptions.RESIZE_INSIDE option.setOnCropImageCompleteListener(OnCropImageCompleteListener).reqWidth - the width to resize the cropped image toreqHeight - the height to resize the cropped image topublic void getCroppedImageAsync(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
setOnCropImageCompleteListener(OnCropImageCompleteListener).reqWidth - the width to resize the cropped image to (see options)reqHeight - the height to resize the cropped image to (see options)options - the resize method to use, see its documentationpublic void saveCroppedImageAsync(android.net.Uri saveUri)
setOnCropImageCompleteListener(OnCropImageCompleteListener).saveUri - the Android Uri to save the cropped image topublic void saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality)
setOnCropImageCompleteListener(OnCropImageCompleteListener).saveUri - the Android Uri to save the cropped image tosaveCompressFormat - the compression format to use when writing the imagesaveCompressQuality - the quality (if applicable) to use when writing the image (0 - 100)public void saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality,
int reqWidth,
int reqHeight)
CropImageView.RequestSizeOptions.RESIZE_INSIDE option.setOnCropImageCompleteListener(OnCropImageCompleteListener).saveUri - the Android Uri to save the cropped image tosaveCompressFormat - the compression format to use when writing the imagesaveCompressQuality - the quality (if applicable) to use when writing the image (0 - 100)reqWidth - the width to resize the cropped image toreqHeight - the height to resize the cropped image topublic void saveCroppedImageAsync(android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality,
int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options)
setOnCropImageCompleteListener(OnCropImageCompleteListener).saveUri - the Android Uri to save the cropped image tosaveCompressFormat - the compression format to use when writing the imagesaveCompressQuality - the quality (if applicable) to use when writing the image (0 - 100)reqWidth - the width to resize the cropped image to (see options)reqHeight - the height to resize the cropped image to (see options)options - the resize method to use, see its documentationpublic void setOnSetCropOverlayReleasedListener(CropImageView.OnSetCropOverlayReleasedListener listener)
public void setOnSetCropOverlayMovedListener(CropImageView.OnSetCropOverlayMovedListener listener)
public void setOnCropWindowChangedListener(CropImageView.OnSetCropWindowChangeListener listener)
public void setOnSetImageUriCompleteListener(CropImageView.OnSetImageUriCompleteListener listener)
setImageUriAsync(Uri)) is
complete (successful or failed).public void setOnCropImageCompleteListener(CropImageView.OnCropImageCompleteListener listener)
getCroppedImageAsync()
or saveCroppedImageAsync(Uri)) is complete (successful or failed).public void setImageBitmap(android.graphics.Bitmap bitmap)
bitmap - the Bitmap to setpublic void setImageBitmap(android.graphics.Bitmap bitmap,
ExifInterface exif)
ExifInterface exif = new ExifInterface(path);bitmap - the original bitmap to set; if null, thisexif - the EXIF information about this bitmap; may be nullpublic void setImageResource(int resId)
resId - the drawable resource ID to setpublic void setImageUriAsync(android.net.Uri uri)
uri - the URI to load the image frompublic void clearImage()
public void rotateImage(int degrees)
degrees - Integer specifying the number of degrees to rotate.public void flipImageHorizontally()
public void flipImageVertically()
public void startCropWorkerTask(int reqWidth,
int reqHeight,
CropImageView.RequestSizeOptions options,
android.net.Uri saveUri,
android.graphics.Bitmap.CompressFormat saveCompressFormat,
int saveCompressQuality)
setOnCropImageCompleteListener(OnCropImageCompleteListener).reqWidth - the width to resize the cropped image to (see options)reqHeight - the height to resize the cropped image to (see options)options - the resize method to use on the cropped bitmapsaveUri - optional: to save the cropped image tosaveCompressFormat - if saveUri is given, the given compression will be used for saving
the imagesaveCompressQuality - if saveUri is given, the given quality will be used for the
compression.public android.os.Parcelable onSaveInstanceState()
onSaveInstanceState in class android.view.Viewpublic void onRestoreInstanceState(android.os.Parcelable state)
onRestoreInstanceState in class android.view.Viewprotected void onMeasure(int widthMeasureSpec,
int heightMeasureSpec)
onMeasure in class android.widget.FrameLayoutprotected void onLayout(boolean changed,
int l,
int t,
int r,
int b)
onLayout in class android.widget.FrameLayoutprotected void onSizeChanged(int w,
int h,
int oldw,
int oldh)
handleCropWindowChanged(boolean, boolean)
in ViewGroup.layout(int, int, int, int).onSizeChanged in class android.view.View