Class PDFView
- java.lang.Object
-
- android.view.View
-
- android.view.ViewGroup
-
- android.widget.RelativeLayout
-
- com.github.barteksc.pdfviewer.PDFView
-
- All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback,android.view.accessibility.AccessibilityEventSource,android.view.KeyEvent.Callback,android.view.ViewManager,android.view.ViewParent
public class PDFView extends android.widget.RelativeLayoutIt supports animations, zoom, cache, and swipe.To fully understand this class you must know its principles : - The PDF document is seen as if we always want to draw all the pages. - The thing is that we only draw the visible parts. - All parts are the same size, this is because we can't interrupt a native page rendering, so we need these renderings to be as fast as possible, and be able to interrupt them as soon as we can. - The parts are loaded when the current offset or the current zoom level changes
Important : - DocumentPage = A page of the PDF document. - UserPage = A page as defined by the user. By default, they're the same. But the user can change the pages order using
load(DocumentSource, String, int[]). In this particular case, a userPage of 5 can refer to a documentPage of 17.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classPDFView.Configurator-
Nested classes/interfaces inherited from class android.widget.RelativeLayout
android.widget.RelativeLayout.LayoutParams
-
Nested classes/interfaces inherited from class android.view.ViewGroup
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
-
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 Modifier and Type Field Description static floatDEFAULT_MAX_SCALEstatic floatDEFAULT_MID_SCALEstatic floatDEFAULT_MIN_SCALE-
Fields inherited from class android.widget.RelativeLayout
ABOVE, ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_END, ALIGN_LEFT, ALIGN_PARENT_BOTTOM, ALIGN_PARENT_END, ALIGN_PARENT_LEFT, ALIGN_PARENT_RIGHT, ALIGN_PARENT_START, ALIGN_PARENT_TOP, ALIGN_RIGHT, ALIGN_START, ALIGN_TOP, BELOW, CENTER_HORIZONTAL, CENTER_IN_PARENT, CENTER_VERTICAL, END_OF, LEFT_OF, RIGHT_OF, START_OF, TRUE
-
Fields inherited from class android.view.ViewGroup
CLIP_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_CACHE
-
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, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_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_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, 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 PDFView(android.content.Context context, android.util.AttributeSet set)Construct the initial view
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanScrollHorizontally(int direction)booleancanScrollVertically(int direction)voidcomputeScroll()Handle fling animationbooleandocumentFitsView()Checks if whole document can be displayed on screen, doesn't include zoombooleandoRenderDuringScale()voidenableAnnotationRendering(boolean annotationRendering)voidenableAntialiasing(boolean enableAntialiasing)voidenableRenderDuringScale(boolean renderDuringScale)voidfitToWidth(int page)PDFView.ConfiguratorfromAsset(java.lang.String assetName)Use an asset file as the pdf sourcePDFView.ConfiguratorfromBytes(byte[] bytes)Use bytearray as the pdf source, documents is not savedPDFView.ConfiguratorfromFile(java.io.File file)Use a file as the pdf sourcePDFView.ConfiguratorfromSource(DocumentSource docSource)Use custom source as pdf sourcePDFView.ConfiguratorfromStream(java.io.InputStream stream)Use stream as the pdf source.PDFView.ConfiguratorfromUri(android.net.Uri uri)Use URI as the pdf source, for use with content providersintgetCurrentPage()floatgetCurrentXOffset()floatgetCurrentYOffset()com.shockwave.pdfium.PdfDocument.MetagetDocumentMeta()Returns null if document is not loadedjava.util.List<com.shockwave.pdfium.PdfDocument.Link>getLinks(int page)Will be empty until document is loadedfloatgetMaxZoom()floatgetMidZoom()floatgetMinZoom()intgetPageAtPositionOffset(float positionOffset)Get page number at given offsetintgetPageCount()FitPolicygetPageFitPolicy()com.shockwave.pdfium.util.SizeFgetPageSize(int pageIndex)floatgetPositionOffset()Get current position as ratio of document length to visible area.intgetSpacingPx()java.util.List<com.shockwave.pdfium.PdfDocument.Bookmark>getTableOfContents()Will be empty until document is loadedfloatgetZoom()booleanisAnnotationRendering()booleanisAntialiasing()booleanisAutoSpacingEnabled()booleanisBestQuality()booleanisFitEachPage()booleanisPageFlingEnabled()booleanisPageSnap()booleanisRecycled()booleanisSwipeEnabled()booleanisSwipeVertical()booleanisZooming()voidjumpTo(int page)voidjumpTo(int page, boolean withAnimation)Go to the given page.voidloadPages()Load all the parts around the center of the screen, taking into account X and Y offsets, zoom level, and the current page displayedvoidmoveRelativeTo(float dx, float dy)Move relatively to the current position.voidmoveTo(float offsetX, float offsetY)voidmoveTo(float offsetX, float offsetY, boolean moveHandle)Move to the given X and Y offsets, but check them ahead of time to be sure not to go outside the the big strip.protected voidonAttachedToWindow()voidonBitmapRendered(PagePart part)Called when a rendering task is over and a PagePart has been freshly created.protected voidonDetachedFromWindow()protected voidonDraw(android.graphics.Canvas canvas)protected voidonSizeChanged(int w, int h, int oldw, int oldh)booleanpageFillsScreen()voidperformPageSnap()Animate to the nearest snapping position for the current SnapPolicyvoidrecycle()voidresetZoom()voidresetZoomWithAnimation()voidsetMaxZoom(float maxZoom)voidsetMidZoom(float midZoom)voidsetMinZoom(float minZoom)voidsetNightMode(boolean nightMode)voidsetPageFling(boolean pageFling)voidsetPageSnap(boolean pageSnap)voidsetPositionOffset(float progress)voidsetPositionOffset(float progress, boolean moveHandle)voidsetSwipeEnabled(boolean enableSwipe)voidstopFling()floattoCurrentScale(float size)floattoRealScale(float size)voiduseBestQuality(boolean bestQuality)voidzoomCenteredRelativeTo(float dzoom, android.graphics.PointF pivot)voidzoomCenteredTo(float zoom, android.graphics.PointF pivot)Change the zoom level, relatively to a pivot point.voidzoomTo(float zoom)Change the zoom levelvoidzoomWithAnimation(float scale)voidzoomWithAnimation(float centerX, float centerY, float scale)-
Methods inherited from class android.widget.RelativeLayout
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getBaseline, getGravity, getIgnoreGravity, onLayout, onMeasure, requestLayout, setGravity, setHorizontalGravity, setIgnoreGravity, setVerticalGravity, shouldDelayChildPressedState
-
Methods inherited from class android.view.ViewGroup
addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, 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, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, 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, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, 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, setWindowInsetsAnimationCallback, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout
-
Methods inherited from class android.view.View
addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, checkInputConnectionProxy, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, 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, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDisplayHint, onDragEvent, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface android.view.ViewParent
canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows
-
-
-
-
Field Detail
-
DEFAULT_MAX_SCALE
public static final float DEFAULT_MAX_SCALE
- See Also:
- Constant Field Values
-
DEFAULT_MID_SCALE
public static final float DEFAULT_MID_SCALE
- See Also:
- Constant Field Values
-
DEFAULT_MIN_SCALE
public static final float DEFAULT_MIN_SCALE
- See Also:
- Constant Field Values
-
-
Method Detail
-
jumpTo
public void jumpTo(int page, boolean withAnimation)Go to the given page.- Parameters:
page- Page index.
-
jumpTo
public void jumpTo(int page)
-
getPositionOffset
public float getPositionOffset()
Get current position as ratio of document length to visible area. 0 means that document start is visible, 1 that document end is visible- Returns:
- offset between 0 and 1
-
setPositionOffset
public void setPositionOffset(float progress, boolean moveHandle)- Parameters:
progress- must be between 0 and 1moveHandle- whether to move scroll handle- See Also:
getPositionOffset()
-
setPositionOffset
public void setPositionOffset(float progress)
-
stopFling
public void stopFling()
-
getPageCount
public int getPageCount()
-
setSwipeEnabled
public void setSwipeEnabled(boolean enableSwipe)
-
setNightMode
public void setNightMode(boolean nightMode)
-
recycle
public void recycle()
-
isRecycled
public boolean isRecycled()
-
computeScroll
public void computeScroll()
Handle fling animation- Overrides:
computeScrollin classandroid.view.View
-
onAttachedToWindow
protected void onAttachedToWindow()
- Overrides:
onAttachedToWindowin classandroid.view.ViewGroup
-
onDetachedFromWindow
protected void onDetachedFromWindow()
- Overrides:
onDetachedFromWindowin classandroid.view.ViewGroup
-
onSizeChanged
protected void onSizeChanged(int w, int h, int oldw, int oldh)- Overrides:
onSizeChangedin classandroid.view.View
-
canScrollHorizontally
public boolean canScrollHorizontally(int direction)
- Overrides:
canScrollHorizontallyin classandroid.view.View
-
canScrollVertically
public boolean canScrollVertically(int direction)
- Overrides:
canScrollVerticallyin classandroid.view.View
-
onDraw
protected void onDraw(android.graphics.Canvas canvas)
- Overrides:
onDrawin classandroid.view.View
-
loadPages
public void loadPages()
Load all the parts around the center of the screen, taking into account X and Y offsets, zoom level, and the current page displayed
-
onBitmapRendered
public void onBitmapRendered(PagePart part)
Called when a rendering task is over and a PagePart has been freshly created.- Parameters:
part- The created PagePart.
-
moveTo
public void moveTo(float offsetX, float offsetY)
-
moveTo
public void moveTo(float offsetX, float offsetY, boolean moveHandle)Move to the given X and Y offsets, but check them ahead of time to be sure not to go outside the the big strip.- Parameters:
offsetX- The big strip X offset to use as the left border of the screen.offsetY- The big strip Y offset to use as the right border of the screen.moveHandle- whether to move scroll handle or not
-
performPageSnap
public void performPageSnap()
Animate to the nearest snapping position for the current SnapPolicy
-
pageFillsScreen
public boolean pageFillsScreen()
- Returns:
- true if single page fills the entire screen in the scrolling direction
-
moveRelativeTo
public void moveRelativeTo(float dx, float dy)Move relatively to the current position.- Parameters:
dx- The X difference you want to apply.dy- The Y difference you want to apply.- See Also:
moveTo(float, float)
-
zoomTo
public void zoomTo(float zoom)
Change the zoom level
-
zoomCenteredTo
public void zoomCenteredTo(float zoom, android.graphics.PointF pivot)Change the zoom level, relatively to a pivot point. It will call moveTo() to make sure the given point stays in the middle of the screen.- Parameters:
zoom- The zoom level.pivot- The point on the screen that should stays.
-
zoomCenteredRelativeTo
public void zoomCenteredRelativeTo(float dzoom, android.graphics.PointF pivot)- See Also:
zoomCenteredTo(float, PointF)
-
documentFitsView
public boolean documentFitsView()
Checks if whole document can be displayed on screen, doesn't include zoom- Returns:
- true if whole document can displayed at once, false otherwise
-
fitToWidth
public void fitToWidth(int page)
-
getPageSize
public com.shockwave.pdfium.util.SizeF getPageSize(int pageIndex)
-
getCurrentPage
public int getCurrentPage()
-
getCurrentXOffset
public float getCurrentXOffset()
-
getCurrentYOffset
public float getCurrentYOffset()
-
toRealScale
public float toRealScale(float size)
-
toCurrentScale
public float toCurrentScale(float size)
-
getZoom
public float getZoom()
-
isZooming
public boolean isZooming()
-
resetZoom
public void resetZoom()
-
resetZoomWithAnimation
public void resetZoomWithAnimation()
-
zoomWithAnimation
public void zoomWithAnimation(float centerX, float centerY, float scale)
-
zoomWithAnimation
public void zoomWithAnimation(float scale)
-
getPageAtPositionOffset
public int getPageAtPositionOffset(float positionOffset)
Get page number at given offset- Parameters:
positionOffset- scroll offset between 0 and 1- Returns:
- page number at given offset, starting from 0
-
getMinZoom
public float getMinZoom()
-
setMinZoom
public void setMinZoom(float minZoom)
-
getMidZoom
public float getMidZoom()
-
setMidZoom
public void setMidZoom(float midZoom)
-
getMaxZoom
public float getMaxZoom()
-
setMaxZoom
public void setMaxZoom(float maxZoom)
-
useBestQuality
public void useBestQuality(boolean bestQuality)
-
isBestQuality
public boolean isBestQuality()
-
isSwipeVertical
public boolean isSwipeVertical()
-
isSwipeEnabled
public boolean isSwipeEnabled()
-
enableAnnotationRendering
public void enableAnnotationRendering(boolean annotationRendering)
-
isAnnotationRendering
public boolean isAnnotationRendering()
-
enableRenderDuringScale
public void enableRenderDuringScale(boolean renderDuringScale)
-
isAntialiasing
public boolean isAntialiasing()
-
enableAntialiasing
public void enableAntialiasing(boolean enableAntialiasing)
-
getSpacingPx
public int getSpacingPx()
-
isAutoSpacingEnabled
public boolean isAutoSpacingEnabled()
-
setPageFling
public void setPageFling(boolean pageFling)
-
isPageFlingEnabled
public boolean isPageFlingEnabled()
-
getPageFitPolicy
public FitPolicy getPageFitPolicy()
-
isFitEachPage
public boolean isFitEachPage()
-
isPageSnap
public boolean isPageSnap()
-
setPageSnap
public void setPageSnap(boolean pageSnap)
-
doRenderDuringScale
public boolean doRenderDuringScale()
-
getDocumentMeta
public com.shockwave.pdfium.PdfDocument.Meta getDocumentMeta()
Returns null if document is not loaded
-
getTableOfContents
public java.util.List<com.shockwave.pdfium.PdfDocument.Bookmark> getTableOfContents()
Will be empty until document is loaded
-
getLinks
public java.util.List<com.shockwave.pdfium.PdfDocument.Link> getLinks(int page)
Will be empty until document is loaded
-
fromAsset
public PDFView.Configurator fromAsset(java.lang.String assetName)
Use an asset file as the pdf source
-
fromFile
public PDFView.Configurator fromFile(java.io.File file)
Use a file as the pdf source
-
fromUri
public PDFView.Configurator fromUri(android.net.Uri uri)
Use URI as the pdf source, for use with content providers
-
fromBytes
public PDFView.Configurator fromBytes(byte[] bytes)
Use bytearray as the pdf source, documents is not saved
-
fromStream
public PDFView.Configurator fromStream(java.io.InputStream stream)
Use stream as the pdf source. Stream will be written to bytearray, because native code does not support Java Streams
-
fromSource
public PDFView.Configurator fromSource(DocumentSource docSource)
Use custom source as pdf source
-
-