master 173e421fdbfa cached
110 files
1.0 MB
276.9k tokens
366 symbols
1 requests
Download .txt
Showing preview only (1,106K chars total). Download the full file or copy to clipboard to get everything.
Repository: davemorrissey/subsampling-scale-image-view
Branch: master
Commit: 173e421fdbfa
Files: 110
Total size: 1.0 MB

Directory structure:
gitextract_4u22zbc_/

├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── build.gradle
├── docs/
│   ├── issue_template.md
│   └── javadoc/
│       ├── allclasses-frame.html
│       ├── allclasses-noframe.html
│       ├── com/
│       │   └── davemorrissey/
│       │       └── labs/
│       │           └── subscaleview/
│       │               ├── ImageSource.html
│       │               ├── ImageViewState.html
│       │               ├── SubsamplingScaleImageView.AnimationBuilder.html
│       │               ├── SubsamplingScaleImageView.DefaultOnAnimationEventListener.html
│       │               ├── SubsamplingScaleImageView.DefaultOnImageEventListener.html
│       │               ├── SubsamplingScaleImageView.DefaultOnStateChangedListener.html
│       │               ├── SubsamplingScaleImageView.OnAnimationEventListener.html
│       │               ├── SubsamplingScaleImageView.OnImageEventListener.html
│       │               ├── SubsamplingScaleImageView.OnStateChangedListener.html
│       │               ├── SubsamplingScaleImageView.html
│       │               ├── decoder/
│       │               │   ├── CompatDecoderFactory.html
│       │               │   ├── DecoderFactory.html
│       │               │   ├── ImageDecoder.html
│       │               │   ├── ImageRegionDecoder.html
│       │               │   ├── SkiaImageDecoder.html
│       │               │   ├── SkiaImageRegionDecoder.html
│       │               │   ├── SkiaPooledImageRegionDecoder.html
│       │               │   ├── package-frame.html
│       │               │   ├── package-summary.html
│       │               │   └── package-tree.html
│       │               ├── package-frame.html
│       │               ├── package-summary.html
│       │               └── package-tree.html
│       ├── constant-values.html
│       ├── deprecated-list.html
│       ├── help-doc.html
│       ├── index-all.html
│       ├── index.html
│       ├── overview-frame.html
│       ├── overview-summary.html
│       ├── overview-tree.html
│       ├── package-list
│       ├── script.js
│       ├── serialized-form.html
│       └── stylesheet.css
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── library/
│   ├── build.gradle
│   ├── proguard-rules.txt
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── davemorrissey/
│           │           └── labs/
│           │               └── subscaleview/
│           │                   ├── ImageSource.java
│           │                   ├── ImageViewState.java
│           │                   ├── SubsamplingScaleImageView.java
│           │                   └── decoder/
│           │                       ├── CompatDecoderFactory.java
│           │                       ├── DecoderFactory.java
│           │                       ├── ImageDecoder.java
│           │                       ├── ImageRegionDecoder.java
│           │                       ├── SkiaImageDecoder.java
│           │                       ├── SkiaImageRegionDecoder.java
│           │                       └── SkiaPooledImageRegionDecoder.java
│           └── res/
│               └── values/
│                   └── attrs.xml
├── release.gradle
├── sample/
│   ├── build.gradle
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── davemorrissey/
│           │           └── labs/
│           │               └── subscaleview/
│           │                   └── test/
│           │                       ├── AbstractFragmentsActivity.java
│           │                       ├── AbstractPagesActivity.java
│           │                       ├── MainActivity.java
│           │                       ├── Page.java
│           │                       ├── animation/
│           │                       │   └── AnimationActivity.java
│           │                       ├── basicfeatures/
│           │                       │   └── BasicFeaturesActivity.java
│           │                       ├── configuration/
│           │                       │   └── ConfigurationActivity.java
│           │                       ├── eventhandling/
│           │                       │   └── EventHandlingActivity.java
│           │                       ├── eventhandlingadvanced/
│           │                       │   └── AdvancedEventHandlingActivity.java
│           │                       ├── extension/
│           │                       │   ├── ExtensionActivity.java
│           │                       │   ├── ExtensionCircleFragment.java
│           │                       │   ├── ExtensionFreehandFragment.java
│           │                       │   ├── ExtensionPinFragment.java
│           │                       │   └── views/
│           │                       │       ├── CircleView.java
│           │                       │       ├── FreehandView.java
│           │                       │       └── PinView.java
│           │                       ├── imagedisplay/
│           │                       │   ├── ImageDisplayActivity.java
│           │                       │   ├── ImageDisplayLargeFragment.java
│           │                       │   ├── ImageDisplayRegionFragment.java
│           │                       │   └── ImageDisplayRotateFragment.java
│           │                       └── viewpager/
│           │                           ├── VerticalViewPager.java
│           │                           ├── ViewPagerActivity.java
│           │                           └── ViewPagerFragment.java
│           └── res/
│               ├── drawable-nodpi/
│               │   ├── button_standout_inactive.xml
│               │   ├── button_standout_pressed.xml
│               │   ├── button_transparent_pressed.xml
│               │   ├── buttonstate_standout.xml
│               │   ├── buttonstate_transparent.xml
│               │   └── transparent.xml
│               ├── layout/
│               │   ├── animation_activity.xml
│               │   ├── extension_circle_fragment.xml
│               │   ├── extension_freehand_fragment.xml
│               │   ├── extension_pin_fragment.xml
│               │   ├── fragments_activity.xml
│               │   ├── imagedisplay_large_fragment.xml
│               │   ├── imagedisplay_region_fragment.xml
│               │   ├── imagedisplay_rotate_fragment.xml
│               │   ├── main.xml
│               │   ├── pages_activity.xml
│               │   ├── view_pager.xml
│               │   └── view_pager_page.xml
│               └── values/
│                   ├── colors.xml
│                   ├── strings.xml
│                   └── style.xml
└── settings.gradle

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Android Studio generated folders
.navigation/
captures/
.externalNativeBuild

# IntelliJ project files
*.iml
.idea/

# Misc
.DS_Store


================================================
FILE: CONTRIBUTING.md
================================================
Before raising a new issue, please check the following places for an answer to your question!

* Read through [the wiki](https://github.com/davemorrissey/subsampling-scale-image-view/wiki) for a comprehensive guide to using the view.
* Search through [open and closed issues](https://github.com/davemorrissey/subsampling-scale-image-view/issues?utf8=%E2%9C%93&q=is%3Aissue)
* Check examples in [the sample project](https://github.com/davemorrissey/subsampling-scale-image-view/tree/master/sample/src/com/davemorrissey/labs/subscaleview/sample) - most common uses are covered.
* See if there's an answer to your question on [StackOverflow](http://stackoverflow.com/).

If you get stuck adding the view in your project or need help extending it for your requirements, please consider asking for help on StackOverflow instead of raising an issue. This issue tracker is intended for reporting bugs and raising feature requests.

Thanks for reading!


================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.

"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.

2. Grant of Copyright License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.

3. Grant of Patent License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.

4. Redistribution.

You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:

You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.

5. Submission of Contributions.

Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.

6. Trademarks.

This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.

7. Disclaimer of Warranty.

Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.

8. Limitation of Liability.

In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability.

While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work

To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
Subsampling Scale Image View
===========================

A custom image view for Android, designed for photo galleries and displaying huge images (e.g. maps and building plans) without `OutOfMemoryError`s. Includes pinch to zoom, panning, rotation and animation support, and allows easy extension so you can add your own overlays and touch event detection.

The view optionally uses subsampling and tiles to support very large images - a low resolution base layer is loaded and as you zoom in, it is overlaid with smaller high resolution tiles for the visible area. This avoids holding too much data in memory. It's ideal for displaying large images while allowing you to zoom in to the high resolution details. You can disable tiling for smaller images and when displaying a bitmap object. There are some advantages and disadvantages to disabling tiling so to decide which is best, see [the wiki](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/02.-Displaying-images).

#### Guides

* [Releases & downloads](https://github.com/davemorrissey/subsampling-scale-image-view/releases)
* [Installation and setup](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/01.-Setup)
* [Image display notes & limitations](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/02.-Displaying-images)
* [Using preview images](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/03.-Preview-images)
* [Handling orientation changes](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/05.-Orientation-changes)
* [Advanced configuration](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/07.-Configuration)
* [Event handling](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/09.-Events)
* [Animation](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/08.-Animation)
* [Extension](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/10.-Extension)
* [Reference (JavaDocs)](http://davemorrissey.github.io/subsampling-scale-image-view/javadoc/)

#### Migration guides

Versions 3.9.0, 3.8.0 and 3.0.0 contain breaking changes. Migration instructions can be found [in the wiki](https://github.com/davemorrissey/subsampling-scale-image-view/wiki/X.--Migration-guides).

#### Download the sample app

[![Get it on Google Play](docs/images/google_play.png)](https://play.google.com/store/apps/details?id=com.davemorrissey.labs.subscaleview.sample)

[Kotlin Sample App on GitHub](https://github.com/davemorrissey/ssiv-kotlin-sample)

#### Demo

![Demo](docs/images/demo.gif)

## Features

#### Image display

* Display images from assets, resources, the file system or bitmaps
* Automatically rotate images from the file system (e.g. the camera or gallery) according to EXIF
* Manually rotate images in 90° increments
* Display a region of the source image
* Use a preview image while large images load
* Swap images at runtime
* Use a custom bitmap decoder

*With tiling enabled:*

* Display huge images, larger than can be loaded into memory
* Show high resolution detail on zooming in
* Tested up to 20,000x20,000px, though larger images are slower

#### Gesture detection

* One finger pan
* Two finger pinch to zoom
* Quick scale (one finger zoom)
* Pan while zooming
* Seamless switch between pan and zoom
* Fling momentum after panning
* Double tap to zoom in and out
* Options to disable pan and/or zoom gestures

#### Animation

* Public methods for animating the scale and center
* Customisable duration and easing
* Optional uninterruptible animations

#### Overridable event detection
* Supports `OnClickListener` and `OnLongClickListener`
* Supports interception of events using `GestureDetector` and `OnTouchListener`
* Extend to add your own gestures

#### Easy integration
* Use within a `ViewPager` to create a photo gallery
* Easily restore scale, center and orientation after screen rotation
* Can be extended to add overlay graphics that move and scale with the image
* Handles view resizing and `wrap_content` layout

## Quick start

**1)** Add this library as a dependency in your app's build.gradle file.

```gradle
dependencies {
    implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'
}
```

If your project uses AndroidX, change the artifact name as follows:

```gradle
dependencies {
    implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'
}
```

**2)** Add the view to your layout XML.

```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>
```

**3a)** Now, in your fragment or activity, set the image resource, asset name or file path.

```java
SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(id.imageView);
imageView.setImage(ImageSource.resource(R.drawable.monkey));
// ... or ...
imageView.setImage(ImageSource.asset("map.png"))
// ... or ...
imageView.setImage(ImageSource.uri("/sdcard/DCIM/DSCM00123.JPG"));
```

**3b)** Or, if you have a `Bitmap` object in memory, load it into the view. This is unsuitable for large images because it bypasses subsampling - you may get an `OutOfMemoryError`.

```java
SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(id.imageView);
imageView.setImage(ImageSource.bitmap(bitmap));
```

## Photo credits

* San Martino by Luca Bravo, via [unsplash.com](https://unsplash.com/photos/lWAOc0UuJ-A)
* Swiss Road by Ludovic Fremondiere, via [unsplash.com](https://unsplash.com/photos/3XN-BNRDUyY)

## About

Copyright 2018 David Morrissey, and licensed under the Apache License, Version 2.0. No attribution is necessary but it's very much appreciated. Star this project if you like it!


================================================
FILE: build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
allprojects {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
}

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
    }
}


================================================
FILE: docs/issue_template.md
================================================
*Please provide as much of the following information as possible. Please do not raise issues to ask for help developing your app.*

### Expected behaviour

### Actual behaviour

### Steps to reproduce

(Include your setup code, and where relevant, your layout XML)

### Affected devices

(Specific devices, screen densities, SDK versions)

### Affected images

(Attach images you have problems with)


================================================
FILE: docs/javadoc/allclasses-frame.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>All Classes (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/CompatDecoderFactory.html" title="class in com.davemorrissey.labs.subscaleview.decoder" target="classFrame">CompatDecoderFactory</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.html" title="interface in com.davemorrissey.labs.subscaleview.decoder" target="classFrame"><span class="interfaceName">DecoderFactory</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/ImageDecoder.html" title="interface in com.davemorrissey.labs.subscaleview.decoder" target="classFrame"><span class="interfaceName">ImageDecoder</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/ImageRegionDecoder.html" title="interface in com.davemorrissey.labs.subscaleview.decoder" target="classFrame"><span class="interfaceName">ImageRegionDecoder</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">ImageSource</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/ImageViewState.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">ImageViewState</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder" target="classFrame">SkiaImageDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaImageRegionDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder" target="classFrame">SkiaImageRegionDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaPooledImageRegionDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder" target="classFrame">SkiaPooledImageRegionDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">SubsamplingScaleImageView</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">SubsamplingScaleImageView.DefaultOnAnimationEventListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">SubsamplingScaleImageView.DefaultOnImageEventListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview" target="classFrame">SubsamplingScaleImageView.DefaultOnStateChangedListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview" target="classFrame"><span class="interfaceName">SubsamplingScaleImageView.OnAnimationEventListener</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview" target="classFrame"><span class="interfaceName">SubsamplingScaleImageView.OnImageEventListener</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview" target="classFrame"><span class="interfaceName">SubsamplingScaleImageView.OnStateChangedListener</span></a></li>
</ul>
</div>
</body>
</html>


================================================
FILE: docs/javadoc/allclasses-noframe.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>All Classes (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/CompatDecoderFactory.html" title="class in com.davemorrissey.labs.subscaleview.decoder">CompatDecoderFactory</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.html" title="interface in com.davemorrissey.labs.subscaleview.decoder"><span class="interfaceName">DecoderFactory</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/ImageDecoder.html" title="interface in com.davemorrissey.labs.subscaleview.decoder"><span class="interfaceName">ImageDecoder</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/ImageRegionDecoder.html" title="interface in com.davemorrissey.labs.subscaleview.decoder"><span class="interfaceName">ImageRegionDecoder</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/ImageViewState.html" title="class in com.davemorrissey.labs.subscaleview">ImageViewState</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder">SkiaImageDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaImageRegionDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder">SkiaImageRegionDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/decoder/SkiaPooledImageRegionDecoder.html" title="class in com.davemorrissey.labs.subscaleview.decoder">SkiaPooledImageRegionDecoder</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnAnimationEventListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnImageEventListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnStateChangedListener</a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="interfaceName">SubsamplingScaleImageView.OnAnimationEventListener</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="interfaceName">SubsamplingScaleImageView.OnImageEventListener</span></a></li>
<li><a href="com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="interfaceName">SubsamplingScaleImageView.OnStateChangedListener</span></a></li>
</ul>
</div>
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/ImageSource.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ImageSource (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ImageSource (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":9,"i18":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/ImageSource.html" target="_top">Frames</a></li>
<li><a href="ImageSource.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class ImageSource" class="title">Class ImageSource</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.ImageSource</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">ImageSource</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Helper class used to set the source and additional attributes from a variety of sources. Supports
 use of a bitmap, asset, resource, external file or any other URI.

 When you are using a preview image, you must set the dimensions of the full size image on the
 ImageSource object for the full size image using the <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#dimensions-int-int-"><code>dimensions(int, int)</code></a> method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#asset-java.lang.String-">asset</a></span>(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;assetName)</code>
<div class="block">Create an instance from an asset name.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#bitmap-android.graphics.Bitmap-">bitmap</a></span>(<a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a>&nbsp;bitmap)</code>
<div class="block">Provide a loaded bitmap for display.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#cachedBitmap-android.graphics.Bitmap-">cachedBitmap</a></span>(<a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a>&nbsp;bitmap)</code>
<div class="block">Provide a loaded and cached bitmap for display.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#dimensions-int-int-">dimensions</a></span>(int&nbsp;sWidth,
          int&nbsp;sHeight)</code>
<div class="block">Declare the dimensions of the image.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getBitmap--">getBitmap</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getResource--">getResource</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getSHeight--">getSHeight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/android/graphics/Rect.html?is-external=true" title="class or interface in android.graphics">Rect</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getSRegion--">getSRegion</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getSWidth--">getSWidth</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getTile--">getTile</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#getUri--">getUri</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#isCached--">isCached</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#region-android.graphics.Rect-">region</a></span>(<a href="https://developer.android.com/reference/android/graphics/Rect.html?is-external=true" title="class or interface in android.graphics">Rect</a>&nbsp;sRegion)</code>
<div class="block">Use a region of the source image.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#resource-int-">resource</a></span>(int&nbsp;resId)</code>
<div class="block">Create an instance from a resource.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#tiling-boolean-">tiling</a></span>(boolean&nbsp;tile)</code>
<div class="block">Enable or disable tiling of the image.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#tilingDisabled--">tilingDisabled</a></span>()</code>
<div class="block">Disable tiling of the image.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#tilingEnabled--">tilingEnabled</a></span>()</code>
<div class="block">Enable tiling of the image.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#uri-java.lang.String-">uri</a></span>(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri)</code>
<div class="block">Create an instance from a URI.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html#uri-android.net.Uri-">uri</a></span>(<a href="https://developer.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a>&nbsp;uri)</code>
<div class="block">Create an instance from a URI.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="resource-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resource</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;resource(int&nbsp;resId)</pre>
<div class="block">Create an instance from a resource. The correct resource for the device screen resolution will be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resId</code> - resource ID.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="asset-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asset</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;asset(<a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                                         <a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;assetName)</pre>
<div class="block">Create an instance from an asset name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>assetName</code> - asset name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="uri-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uri</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;uri(<a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                                       <a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri)</pre>
<div class="block">Create an instance from a URI. If the URI does not start with a scheme, it's assumed to be the URI
 of a file.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uri</code> - image URI.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="uri-android.net.Uri-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uri</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;uri(<a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                                       <a href="https://developer.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a>&nbsp;uri)</pre>
<div class="block">Create an instance from a URI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uri</code> - image URI.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="bitmap-android.graphics.Bitmap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bitmap</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;bitmap(<a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                                          <a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a>&nbsp;bitmap)</pre>
<div class="block">Provide a loaded bitmap for display.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bitmap</code> - bitmap to be displayed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="cachedBitmap-android.graphics.Bitmap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cachedBitmap</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public static&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;cachedBitmap(<a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                                                <a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a>&nbsp;bitmap)</pre>
<div class="block">Provide a loaded and cached bitmap for display. This bitmap will not be recycled when it is no
 longer needed. Use this method if you loaded the bitmap with an image loader such as Picasso
 or Volley.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bitmap</code> - bitmap to be displayed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><code>ImageSource</code></a> instance.</dd>
</dl>
</li>
</ul>
<a name="tilingEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tilingEnabled</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;tilingEnabled()</pre>
<div class="block">Enable tiling of the image. This does not apply to preview images which are always loaded as a single bitmap.,
 and tiling cannot be disabled when displaying a region of the source image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="tilingDisabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tilingDisabled</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;tilingDisabled()</pre>
<div class="block">Disable tiling of the image. This does not apply to preview images which are always loaded as a single bitmap,
 and tiling cannot be disabled when displaying a region of the source image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="tiling-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tiling</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;tiling(boolean&nbsp;tile)</pre>
<div class="block">Enable or disable tiling of the image. This does not apply to preview images which are always loaded as a single bitmap,
 and tiling cannot be disabled when displaying a region of the source image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tile</code> - whether tiling should be enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="region-android.graphics.Rect-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;region(<a href="https://developer.android.com/reference/android/graphics/Rect.html?is-external=true" title="class or interface in android.graphics">Rect</a>&nbsp;sRegion)</pre>
<div class="block">Use a region of the source image. Region must be set independently for the full size image and the preview if
 you are using one.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sRegion</code> - the region of the source image to be displayed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="dimensions-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dimensions</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview">ImageSource</a>&nbsp;dimensions(int&nbsp;sWidth,
                                       int&nbsp;sHeight)</pre>
<div class="block">Declare the dimensions of the image. This is only required for a full size image, when you are specifying a URI
 and also a preview image. When displaying a bitmap object, or not using a preview, you do not need to declare
 the image dimensions. Note if the declared dimensions are found to be incorrect, the view will reset.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sWidth</code> - width of the source image.</dd>
<dd><code>sHeight</code> - height of the source image.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="getUri--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUri</h4>
<pre>protected final&nbsp;<a href="https://developer.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a>&nbsp;getUri()</pre>
</li>
</ul>
<a name="getBitmap--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBitmap</h4>
<pre>protected final&nbsp;<a href="https://developer.android.com/reference/android/graphics/Bitmap.html?is-external=true" title="class or interface in android.graphics">Bitmap</a>&nbsp;getBitmap()</pre>
</li>
</ul>
<a name="getResource--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResource</h4>
<pre>protected final&nbsp;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;getResource()</pre>
</li>
</ul>
<a name="getTile--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTile</h4>
<pre>protected final&nbsp;boolean&nbsp;getTile()</pre>
</li>
</ul>
<a name="getSWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSWidth</h4>
<pre>protected final&nbsp;int&nbsp;getSWidth()</pre>
</li>
</ul>
<a name="getSHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSHeight</h4>
<pre>protected final&nbsp;int&nbsp;getSHeight()</pre>
</li>
</ul>
<a name="getSRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSRegion</h4>
<pre>protected final&nbsp;<a href="https://developer.android.com/reference/android/graphics/Rect.html?is-external=true" title="class or interface in android.graphics">Rect</a>&nbsp;getSRegion()</pre>
</li>
</ul>
<a name="isCached--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isCached</h4>
<pre>protected final&nbsp;boolean&nbsp;isCached()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/ImageSource.html" target="_top">Frames</a></li>
<li><a href="ImageSource.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/ImageViewState.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ImageViewState (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ImageViewState (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/ImageViewState.html" target="_top">Frames</a></li>
<li><a href="ImageViewState.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class ImageViewState" class="title">Class ImageViewState</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.ImageViewState</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ImageViewState</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Wraps the scale, center and orientation of a displayed image for easy restoration on screen rotate.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../serialized-form.html#com.davemorrissey.labs.subscaleview.ImageViewState">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html#ImageViewState-float-android.graphics.PointF-int-">ImageViewState</a></span>(float&nbsp;scale,
              <a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;center,
              int&nbsp;orientation)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html#getCenter--">getCenter</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html#getOrientation--">getOrientation</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html#getScale--">getScale</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="ImageViewState-float-android.graphics.PointF-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ImageViewState</h4>
<pre>public&nbsp;ImageViewState(float&nbsp;scale,
                      <a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
                      <a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;center,
                      int&nbsp;orientation)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getScale--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScale</h4>
<pre>public&nbsp;float&nbsp;getScale()</pre>
</li>
</ul>
<a name="getCenter--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCenter</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;getCenter()</pre>
</li>
</ul>
<a name="getOrientation--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getOrientation</h4>
<pre>public&nbsp;int&nbsp;getOrientation()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/ImageSource.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/ImageViewState.html" target="_top">Frames</a></li>
<li><a href="ImageViewState.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.AnimationBuilder (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.AnimationBuilder (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.AnimationBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class SubsamplingScaleImageView.AnimationBuilder" class="title">Class SubsamplingScaleImageView.AnimationBuilder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.AnimationBuilder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public final class <span class="typeNameLabel">SubsamplingScaleImageView.AnimationBuilder</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Builder class used to set additional options for a scale animation. Create an instance using <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#animateScale-float-"><code>SubsamplingScaleImageView.animateScale(float)</code></a>,
 then set your options and call <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#start--"><code>start()</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#start--">start</a></span>()</code>
<div class="block">Starts the animation.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#withDuration-long-">withDuration</a></span>(long&nbsp;duration)</code>
<div class="block">Desired duration of the anim in milliseconds.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#withEasing-int-">withEasing</a></span>(int&nbsp;easing)</code>
<div class="block">Set the easing style.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#withInterruptible-boolean-">withInterruptible</a></span>(boolean&nbsp;interruptible)</code>
<div class="block">Whether the animation can be interrupted with a touch.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html#withOnAnimationEventListener-com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.OnAnimationEventListener-">withOnAnimationEventListener</a></span>(<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a>&nbsp;listener)</code>
<div class="block">Add an animation event listener.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="withDuration-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withDuration</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a>&nbsp;withDuration(long&nbsp;duration)</pre>
<div class="block">Desired duration of the anim in milliseconds. Default is 500.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>duration</code> - duration in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder for method chaining.</dd>
</dl>
</li>
</ul>
<a name="withInterruptible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withInterruptible</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a>&nbsp;withInterruptible(boolean&nbsp;interruptible)</pre>
<div class="block">Whether the animation can be interrupted with a touch. Default is true.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>interruptible</code> - interruptible flag.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder for method chaining.</dd>
</dl>
</li>
</ul>
<a name="withEasing-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withEasing</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a>&nbsp;withEasing(int&nbsp;easing)</pre>
<div class="block">Set the easing style. See static fields. <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#EASE_IN_OUT_QUAD"><code>SubsamplingScaleImageView.EASE_IN_OUT_QUAD</code></a> is recommended, and the default.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>easing</code> - easing style.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder for method chaining.</dd>
</dl>
</li>
</ul>
<a name="withOnAnimationEventListener-com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.OnAnimationEventListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withOnAnimationEventListener</h4>
<pre><a href="https://developer.android.com/reference/android/support.annotation.NonNull.html?is-external=true" title="class or interface in android">@NonNull</a>
public&nbsp;<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a>&nbsp;withOnAnimationEventListener(<a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a>&nbsp;listener)</pre>
<div class="block">Add an animation event listener.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder for method chaining.</dd>
</dl>
</li>
</ul>
<a name="start--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;start()</pre>
<div class="block">Starts the animation.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.AnimationBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.DefaultOnAnimationEventListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.DefaultOnAnimationEventListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class SubsamplingScaleImageView.DefaultOnAnimationEventListener" class="title">Class SubsamplingScaleImageView.DefaultOnAnimationEventListener</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.DefaultOnAnimationEventListener</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">SubsamplingScaleImageView.DefaultOnAnimationEventListener</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></pre>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnAnimationEventListener</code></a> for extension. This does nothing in any method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html#DefaultOnAnimationEventListener--">DefaultOnAnimationEventListener</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html#onComplete--">onComplete</a></span>()</code>
<div class="block">The animation has completed, having reached its endpoint.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html#onInterruptedByNewAnim--">onInterruptedByNewAnim</a></span>()</code>
<div class="block">The animation has been aborted before reaching its endpoint because a new animation has been started.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html#onInterruptedByUser--">onInterruptedByUser</a></span>()</code>
<div class="block">The animation has been aborted before reaching its endpoint because the user touched the screen.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultOnAnimationEventListener--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultOnAnimationEventListener</h4>
<pre>public&nbsp;DefaultOnAnimationEventListener()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onComplete--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onComplete</h4>
<pre>public&nbsp;void&nbsp;onComplete()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onComplete--">SubsamplingScaleImageView.OnAnimationEventListener</a></code></span></div>
<div class="block">The animation has completed, having reached its endpoint.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onComplete--">onComplete</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></code></dd>
</dl>
</li>
</ul>
<a name="onInterruptedByUser--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onInterruptedByUser</h4>
<pre>public&nbsp;void&nbsp;onInterruptedByUser()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByUser--">SubsamplingScaleImageView.OnAnimationEventListener</a></code></span></div>
<div class="block">The animation has been aborted before reaching its endpoint because the user touched the screen.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByUser--">onInterruptedByUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></code></dd>
</dl>
</li>
</ul>
<a name="onInterruptedByNewAnim--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInterruptedByNewAnim</h4>
<pre>public&nbsp;void&nbsp;onInterruptedByNewAnim()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByNewAnim--">SubsamplingScaleImageView.OnAnimationEventListener</a></code></span></div>
<div class="block">The animation has been aborted before reaching its endpoint because a new animation has been started.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByNewAnim--">onInterruptedByNewAnim</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.DefaultOnImageEventListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.DefaultOnImageEventListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnImageEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class SubsamplingScaleImageView.DefaultOnImageEventListener" class="title">Class SubsamplingScaleImageView.DefaultOnImageEventListener</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.DefaultOnImageEventListener</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">SubsamplingScaleImageView.DefaultOnImageEventListener</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></pre>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnImageEventListener</code></a> for extension. This does nothing in any method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#DefaultOnImageEventListener--">DefaultOnImageEventListener</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onImageLoaded--">onImageLoaded</a></span>()</code>
<div class="block">Called when the full size image is ready.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onImageLoadError-java.lang.Exception-">onImageLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Indicates an error initiliasing the decoder when using a tiling, or when loading the full
 size bitmap when tiling is disabled.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onPreviewLoadError-java.lang.Exception-">onPreviewLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Called when a preview image could not be loaded.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onPreviewReleased--">onPreviewReleased</a></span>()</code>
<div class="block">Called when a bitmap set using ImageSource.cachedBitmap is no longer being used by the View.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onReady--">onReady</a></span>()</code>
<div class="block">Called when the dimensions of the image and view are known, and either a preview image,
 the full size image, or base layer tiles are loaded.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html#onTileLoadError-java.lang.Exception-">onTileLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Called when an image tile could not be loaded.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultOnImageEventListener--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultOnImageEventListener</h4>
<pre>public&nbsp;DefaultOnImageEventListener()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onReady--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onReady</h4>
<pre>public&nbsp;void&nbsp;onReady()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onReady--">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Called when the dimensions of the image and view are known, and either a preview image,
 the full size image, or base layer tiles are loaded. This indicates the scale and translate
 are known and the next draw will display an image. This event can be used to hide a loading
 graphic, or inform a subclass that it is safe to draw overlays.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onReady--">onReady</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
</dl>
</li>
</ul>
<a name="onImageLoaded--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onImageLoaded</h4>
<pre>public&nbsp;void&nbsp;onImageLoaded()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoaded--">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Called when the full size image is ready. When using tiling, this means the lowest resolution
 base layer of tiles are loaded, and when tiling is disabled, the image bitmap is loaded.
 This event could be used as a trigger to enable gestures if you wanted interaction disabled
 while only a preview is displayed, otherwise for most cases <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onReady--"><code>SubsamplingScaleImageView.OnImageEventListener.onReady()</code></a> is the best
 event to listen to.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoaded--">onImageLoaded</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
</dl>
</li>
</ul>
<a name="onPreviewLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onPreviewLoadError</h4>
<pre>public&nbsp;void&nbsp;onPreviewLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewLoadError-java.lang.Exception-">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Called when a preview image could not be loaded. This method cannot be relied upon; certain
 encoding types of supported image formats can result in corrupt or blank images being loaded
 and displayed with no detectable error. The view will continue to load the full size image.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewLoadError-java.lang.Exception-">onPreviewLoadError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onImageLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onImageLoadError</h4>
<pre>public&nbsp;void&nbsp;onImageLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoadError-java.lang.Exception-">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Indicates an error initiliasing the decoder when using a tiling, or when loading the full
 size bitmap when tiling is disabled. This method cannot be relied upon; certain encoding
 types of supported image formats can result in corrupt or blank images being loaded and
 displayed with no detectable error.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoadError-java.lang.Exception-">onImageLoadError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is also logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onTileLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onTileLoadError</h4>
<pre>public&nbsp;void&nbsp;onTileLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onTileLoadError-java.lang.Exception-">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Called when an image tile could not be loaded. This method cannot be relied upon; certain
 encoding types of supported image formats can result in corrupt or blank images being loaded
 and displayed with no detectable error. Most cases where an unsupported file is used will
 result in an error caught by <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoadError-java.lang.Exception-"><code>SubsamplingScaleImageView.OnImageEventListener.onImageLoadError(Exception)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onTileLoadError-java.lang.Exception-">onTileLoadError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onPreviewReleased--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onPreviewReleased</h4>
<pre>public&nbsp;void&nbsp;onPreviewReleased()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewReleased--">SubsamplingScaleImageView.OnImageEventListener</a></code></span></div>
<div class="block">Called when a bitmap set using ImageSource.cachedBitmap is no longer being used by the View.
 This is useful if you wish to manage the bitmap after the preview is shown</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewReleased--">onPreviewReleased</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnImageEventListener</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnImageEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.DefaultOnStateChangedListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.DefaultOnStateChangedListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnStateChangedListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class SubsamplingScaleImageView.DefaultOnStateChangedListener" class="title">Class SubsamplingScaleImageView.DefaultOnStateChangedListener</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.DefaultOnStateChangedListener</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnStateChangedListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">SubsamplingScaleImageView.DefaultOnStateChangedListener</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnStateChangedListener</a></pre>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnStateChangedListener</code></a>. This does nothing in any method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html#DefaultOnStateChangedListener--">DefaultOnStateChangedListener</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html#onCenterChanged-android.graphics.PointF-int-">onCenterChanged</a></span>(<a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;newCenter,
               int&nbsp;origin)</code>
<div class="block">The source center has been changed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html#onScaleChanged-float-int-">onScaleChanged</a></span>(float&nbsp;newScale,
              int&nbsp;origin)</code>
<div class="block">The scale has changed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultOnStateChangedListener--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultOnStateChangedListener</h4>
<pre>public&nbsp;DefaultOnStateChangedListener()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onCenterChanged-android.graphics.PointF-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onCenterChanged</h4>
<pre>public&nbsp;void&nbsp;onCenterChanged(<a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;newCenter,
                            int&nbsp;origin)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onCenterChanged-android.graphics.PointF-int-">SubsamplingScaleImageView.OnStateChangedListener</a></code></span></div>
<div class="block">The source center has been changed. This can be a result of panning or zooming.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onCenterChanged-android.graphics.PointF-int-">onCenterChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnStateChangedListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newCenter</code> - The new source center point.</dd>
<dd><code>origin</code> - Where the event originated from - one of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_ANIM"><code>SubsamplingScaleImageView.ORIGIN_ANIM</code></a>, <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_TOUCH"><code>SubsamplingScaleImageView.ORIGIN_TOUCH</code></a>.</dd>
</dl>
</li>
</ul>
<a name="onScaleChanged-float-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onScaleChanged</h4>
<pre>public&nbsp;void&nbsp;onScaleChanged(float&nbsp;newScale,
                           int&nbsp;origin)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onScaleChanged-float-int-">SubsamplingScaleImageView.OnStateChangedListener</a></code></span></div>
<div class="block">The scale has changed. Use with <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#getMaxScale--"><code>SubsamplingScaleImageView.getMaxScale()</code></a> and <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#getMinScale--"><code>SubsamplingScaleImageView.getMinScale()</code></a> to determine
 whether the image is fully zoomed in or out.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onScaleChanged-float-int-">onScaleChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnStateChangedListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newScale</code> - The new scale.</dd>
<dd><code>origin</code> - Where the event originated from - one of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_ANIM"><code>SubsamplingScaleImageView.ORIGIN_ANIM</code></a>, <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_TOUCH"><code>SubsamplingScaleImageView.ORIGIN_TOUCH</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.DefaultOnStateChangedListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.OnAnimationEventListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.OnAnimationEventListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnAnimationEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Interface SubsamplingScaleImageView.OnAnimationEventListener" class="title">Interface SubsamplingScaleImageView.OnAnimationEventListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnAnimationEventListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">SubsamplingScaleImageView.OnAnimationEventListener</span></pre>
<div class="block">An event listener for animations, allows events to be triggered when an animation completes,
 is aborted by another animation starting, or is aborted by a touch event. Note that none of
 these events are triggered if the activity is paused, the image is swapped, or in other cases
 where the view's internal state gets wiped or draw events stop.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onComplete--">onComplete</a></span>()</code>
<div class="block">The animation has completed, having reached its endpoint.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByNewAnim--">onInterruptedByNewAnim</a></span>()</code>
<div class="block">The animation has been aborted before reaching its endpoint because a new animation has been started.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html#onInterruptedByUser--">onInterruptedByUser</a></span>()</code>
<div class="block">The animation has been aborted before reaching its endpoint because the user touched the screen.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onComplete--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onComplete</h4>
<pre>void&nbsp;onComplete()</pre>
<div class="block">The animation has completed, having reached its endpoint.</div>
</li>
</ul>
<a name="onInterruptedByUser--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onInterruptedByUser</h4>
<pre>void&nbsp;onInterruptedByUser()</pre>
<div class="block">The animation has been aborted before reaching its endpoint because the user touched the screen.</div>
</li>
</ul>
<a name="onInterruptedByNewAnim--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInterruptedByNewAnim</h4>
<pre>void&nbsp;onInterruptedByNewAnim()</pre>
<div class="block">The animation has been aborted before reaching its endpoint because a new animation has been started.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnAnimationEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.OnImageEventListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.OnImageEventListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnImageEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Interface SubsamplingScaleImageView.OnImageEventListener" class="title">Interface SubsamplingScaleImageView.OnImageEventListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnImageEventListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">SubsamplingScaleImageView.OnImageEventListener</span></pre>
<div class="block">An event listener, allowing subclasses and activities to be notified of significant events.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoaded--">onImageLoaded</a></span>()</code>
<div class="block">Called when the full size image is ready.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoadError-java.lang.Exception-">onImageLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Indicates an error initiliasing the decoder when using a tiling, or when loading the full
 size bitmap when tiling is disabled.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewLoadError-java.lang.Exception-">onPreviewLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Called when a preview image could not be loaded.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onPreviewReleased--">onPreviewReleased</a></span>()</code>
<div class="block">Called when a bitmap set using ImageSource.cachedBitmap is no longer being used by the View.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onReady--">onReady</a></span>()</code>
<div class="block">Called when the dimensions of the image and view are known, and either a preview image,
 the full size image, or base layer tiles are loaded.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onTileLoadError-java.lang.Exception-">onTileLoadError</a></span>(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</code>
<div class="block">Called when an image tile could not be loaded.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onReady--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onReady</h4>
<pre>void&nbsp;onReady()</pre>
<div class="block">Called when the dimensions of the image and view are known, and either a preview image,
 the full size image, or base layer tiles are loaded. This indicates the scale and translate
 are known and the next draw will display an image. This event can be used to hide a loading
 graphic, or inform a subclass that it is safe to draw overlays.</div>
</li>
</ul>
<a name="onImageLoaded--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onImageLoaded</h4>
<pre>void&nbsp;onImageLoaded()</pre>
<div class="block">Called when the full size image is ready. When using tiling, this means the lowest resolution
 base layer of tiles are loaded, and when tiling is disabled, the image bitmap is loaded.
 This event could be used as a trigger to enable gestures if you wanted interaction disabled
 while only a preview is displayed, otherwise for most cases <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onReady--"><code>onReady()</code></a> is the best
 event to listen to.</div>
</li>
</ul>
<a name="onPreviewLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onPreviewLoadError</h4>
<pre>void&nbsp;onPreviewLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block">Called when a preview image could not be loaded. This method cannot be relied upon; certain
 encoding types of supported image formats can result in corrupt or blank images being loaded
 and displayed with no detectable error. The view will continue to load the full size image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onImageLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onImageLoadError</h4>
<pre>void&nbsp;onImageLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block">Indicates an error initiliasing the decoder when using a tiling, or when loading the full
 size bitmap when tiling is disabled. This method cannot be relied upon; certain encoding
 types of supported image formats can result in corrupt or blank images being loaded and
 displayed with no detectable error.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is also logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onTileLoadError-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onTileLoadError</h4>
<pre>void&nbsp;onTileLoadError(<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
<div class="block">Called when an image tile could not be loaded. This method cannot be relied upon; certain
 encoding types of supported image formats can result in corrupt or blank images being loaded
 and displayed with no detectable error. Most cases where an unsupported file is used will
 result in an error caught by <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html#onImageLoadError-java.lang.Exception-"><code>onImageLoadError(Exception)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - The exception thrown. This error is logged by the view.</dd>
</dl>
</li>
</ul>
<a name="onPreviewReleased--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onPreviewReleased</h4>
<pre>void&nbsp;onPreviewReleased()</pre>
<div class="block">Called when a bitmap set using ImageSource.cachedBitmap is no longer being used by the View.
 This is useful if you wish to manage the bitmap after the preview is shown</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnImageEventListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView.OnStateChangedListener (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView.OnStateChangedListener (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnStateChangedListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Interface SubsamplingScaleImageView.OnStateChangedListener" class="title">Interface SubsamplingScaleImageView.OnStateChangedListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnStateChangedListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">SubsamplingScaleImageView.OnStateChangedListener</span></pre>
<div class="block">An event listener, allowing activities to be notified of pan and zoom events. Initialisation
 and calls made by your code do not trigger events; touch events and animations do. Methods in
 this listener will be called on the UI thread and may be called very frequently - your
 implementation should return quickly.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onCenterChanged-android.graphics.PointF-int-">onCenterChanged</a></span>(<a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;newCenter,
               int&nbsp;origin)</code>
<div class="block">The source center has been changed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html#onScaleChanged-float-int-">onScaleChanged</a></span>(float&nbsp;newScale,
              int&nbsp;origin)</code>
<div class="block">The scale has changed.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onScaleChanged-float-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onScaleChanged</h4>
<pre>void&nbsp;onScaleChanged(float&nbsp;newScale,
                    int&nbsp;origin)</pre>
<div class="block">The scale has changed. Use with <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#getMaxScale--"><code>SubsamplingScaleImageView.getMaxScale()</code></a> and <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#getMinScale--"><code>SubsamplingScaleImageView.getMinScale()</code></a> to determine
 whether the image is fully zoomed in or out.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newScale</code> - The new scale.</dd>
<dd><code>origin</code> - Where the event originated from - one of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_ANIM"><code>SubsamplingScaleImageView.ORIGIN_ANIM</code></a>, <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_TOUCH"><code>SubsamplingScaleImageView.ORIGIN_TOUCH</code></a>.</dd>
</dl>
</li>
</ul>
<a name="onCenterChanged-android.graphics.PointF-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onCenterChanged</h4>
<pre>void&nbsp;onCenterChanged(<a href="https://developer.android.com/reference/android/graphics/PointF.html?is-external=true" title="class or interface in android.graphics">PointF</a>&nbsp;newCenter,
                     int&nbsp;origin)</pre>
<div class="block">The source center has been changed. This can be a result of panning or zooming.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newCenter</code> - The new source center point.</dd>
<dd><code>origin</code> - Where the event originated from - one of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_ANIM"><code>SubsamplingScaleImageView.ORIGIN_ANIM</code></a>, <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html#ORIGIN_TOUCH"><code>SubsamplingScaleImageView.ORIGIN_TOUCH</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.OnStateChangedListener.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>


================================================
FILE: docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html
================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubsamplingScaleImageView (library 3.10.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SubsamplingScaleImageView (library 3.10.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":9,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/davemorrissey/labs/subscaleview/ImageViewState.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html" target="_top">Frames</a></li>
<li><a href="SubsamplingScaleImageView.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.davemorrissey.labs.subscaleview</div>
<h2 title="Class SubsamplingScaleImageView" class="title">Class SubsamplingScaleImageView</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/android/view/View.html?is-external=true" title="class or interface in android.view">android.view.View</a></li>
<li>
<ul class="inheritance">
<li>com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.Callback.html?is-external=true" title="class or interface in android.graphics.drawable">Drawable.Callback</a>, <a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityEventSource.html?is-external=true" title="class or interface in android.view.accessibility">AccessibilityEventSource</a>, <a href="https://developer.android.com/reference/android/view/KeyEvent.Callback.html?is-external=true" title="class or interface in android.view">KeyEvent.Callback</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SubsamplingScaleImageView</span>
extends <a href="https://developer.android.com/reference/android/view/View.html?is-external=true" title="class or interface in android.view">View</a></pre>
<div class="block"><p>
 Displays an image subsampled as necessary to avoid loading too much image data into memory. After zooming in,
 a set of image tiles subsampled at higher resolution are loaded and displayed over the base layer. During pan and
 zoom, tiles off screen or higher/lower resolution than required are discarded from memory.
 </p><p>
 Tiles are no larger than the max supported bitmap size, so with large images tiling may be used even when zoomed out.
 </p><p>
 v prefixes - coordinates, translations and distances measured in screen (view) pixels
 <br>
 s prefixes - coordinates, translations and distances measured in rotated and cropped source image pixels (scaled)
 <br>
 f prefixes - coordinates, translations and distances measured in original unrotated, uncropped source file pixels
 </p><p>
 <a href="https://github.com/davemorrissey/subsampling-scale-image-view">View project on GitHub</a>
 </p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.AnimationBuilder</a></span></code>
<div class="block">Builder class used to set additional options for a scale animation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnAnimationEventListener</a></span></code>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnAnimationEventListener</code></a> for extension.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnImageEventListener</a></span></code>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnImageEventListener</code></a> for extension.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html" title="class in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.DefaultOnStateChangedListener</a></span></code>
<div class="block">Default implementation of <a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html" title="interface in com.davemorrissey.labs.subscaleview"><code>SubsamplingScaleImageView.OnStateChangedListener</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html" title="interface in com.davemorrissey.labs.subscaleview">SubsamplingScaleImageView.OnAnimationEventListener</a></span></code>
<div class="block">An event listener for animations, allows events to be triggered when an animation completes,
 is aborted by another animation starting, or is aborted by a touch event.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</
Download .txt
gitextract_4u22zbc_/

├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── build.gradle
├── docs/
│   ├── issue_template.md
│   └── javadoc/
│       ├── allclasses-frame.html
│       ├── allclasses-noframe.html
│       ├── com/
│       │   └── davemorrissey/
│       │       └── labs/
│       │           └── subscaleview/
│       │               ├── ImageSource.html
│       │               ├── ImageViewState.html
│       │               ├── SubsamplingScaleImageView.AnimationBuilder.html
│       │               ├── SubsamplingScaleImageView.DefaultOnAnimationEventListener.html
│       │               ├── SubsamplingScaleImageView.DefaultOnImageEventListener.html
│       │               ├── SubsamplingScaleImageView.DefaultOnStateChangedListener.html
│       │               ├── SubsamplingScaleImageView.OnAnimationEventListener.html
│       │               ├── SubsamplingScaleImageView.OnImageEventListener.html
│       │               ├── SubsamplingScaleImageView.OnStateChangedListener.html
│       │               ├── SubsamplingScaleImageView.html
│       │               ├── decoder/
│       │               │   ├── CompatDecoderFactory.html
│       │               │   ├── DecoderFactory.html
│       │               │   ├── ImageDecoder.html
│       │               │   ├── ImageRegionDecoder.html
│       │               │   ├── SkiaImageDecoder.html
│       │               │   ├── SkiaImageRegionDecoder.html
│       │               │   ├── SkiaPooledImageRegionDecoder.html
│       │               │   ├── package-frame.html
│       │               │   ├── package-summary.html
│       │               │   └── package-tree.html
│       │               ├── package-frame.html
│       │               ├── package-summary.html
│       │               └── package-tree.html
│       ├── constant-values.html
│       ├── deprecated-list.html
│       ├── help-doc.html
│       ├── index-all.html
│       ├── index.html
│       ├── overview-frame.html
│       ├── overview-summary.html
│       ├── overview-tree.html
│       ├── package-list
│       ├── script.js
│       ├── serialized-form.html
│       └── stylesheet.css
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── library/
│   ├── build.gradle
│   ├── proguard-rules.txt
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── davemorrissey/
│           │           └── labs/
│           │               └── subscaleview/
│           │                   ├── ImageSource.java
│           │                   ├── ImageViewState.java
│           │                   ├── SubsamplingScaleImageView.java
│           │                   └── decoder/
│           │                       ├── CompatDecoderFactory.java
│           │                       ├── DecoderFactory.java
│           │                       ├── ImageDecoder.java
│           │                       ├── ImageRegionDecoder.java
│           │                       ├── SkiaImageDecoder.java
│           │                       ├── SkiaImageRegionDecoder.java
│           │                       └── SkiaPooledImageRegionDecoder.java
│           └── res/
│               └── values/
│                   └── attrs.xml
├── release.gradle
├── sample/
│   ├── build.gradle
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── com/
│           │       └── davemorrissey/
│           │           └── labs/
│           │               └── subscaleview/
│           │                   └── test/
│           │                       ├── AbstractFragmentsActivity.java
│           │                       ├── AbstractPagesActivity.java
│           │                       ├── MainActivity.java
│           │                       ├── Page.java
│           │                       ├── animation/
│           │                       │   └── AnimationActivity.java
│           │                       ├── basicfeatures/
│           │                       │   └── BasicFeaturesActivity.java
│           │                       ├── configuration/
│           │                       │   └── ConfigurationActivity.java
│           │                       ├── eventhandling/
│           │                       │   └── EventHandlingActivity.java
│           │                       ├── eventhandlingadvanced/
│           │                       │   └── AdvancedEventHandlingActivity.java
│           │                       ├── extension/
│           │                       │   ├── ExtensionActivity.java
│           │                       │   ├── ExtensionCircleFragment.java
│           │                       │   ├── ExtensionFreehandFragment.java
│           │                       │   ├── ExtensionPinFragment.java
│           │                       │   └── views/
│           │                       │       ├── CircleView.java
│           │                       │       ├── FreehandView.java
│           │                       │       └── PinView.java
│           │                       ├── imagedisplay/
│           │                       │   ├── ImageDisplayActivity.java
│           │                       │   ├── ImageDisplayLargeFragment.java
│           │                       │   ├── ImageDisplayRegionFragment.java
│           │                       │   └── ImageDisplayRotateFragment.java
│           │                       └── viewpager/
│           │                           ├── VerticalViewPager.java
│           │                           ├── ViewPagerActivity.java
│           │                           └── ViewPagerFragment.java
│           └── res/
│               ├── drawable-nodpi/
│               │   ├── button_standout_inactive.xml
│               │   ├── button_standout_pressed.xml
│               │   ├── button_transparent_pressed.xml
│               │   ├── buttonstate_standout.xml
│               │   ├── buttonstate_transparent.xml
│               │   └── transparent.xml
│               ├── layout/
│               │   ├── animation_activity.xml
│               │   ├── extension_circle_fragment.xml
│               │   ├── extension_freehand_fragment.xml
│               │   ├── extension_pin_fragment.xml
│               │   ├── fragments_activity.xml
│               │   ├── imagedisplay_large_fragment.xml
│               │   ├── imagedisplay_region_fragment.xml
│               │   ├── imagedisplay_rotate_fragment.xml
│               │   ├── main.xml
│               │   ├── pages_activity.xml
│               │   ├── view_pager.xml
│               │   └── view_pager_page.xml
│               └── values/
│                   ├── colors.xml
│                   ├── strings.xml
│                   └── style.xml
└── settings.gradle
Download .txt
SYMBOL INDEX (366 symbols across 34 files)

FILE: docs/javadoc/script.js
  function show (line 1) | function show(type)
  function updateTabs (line 16) | function updateTabs(type)

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/ImageSource.java
  class ImageSource (line 19) | @SuppressWarnings({"unused", "WeakerAccess"})
    method ImageSource (line 34) | private ImageSource(Bitmap bitmap, boolean cached) {
    method ImageSource (line 44) | private ImageSource(@NonNull Uri uri) {
    method ImageSource (line 63) | private ImageSource(int resource) {
    method resource (line 75) | @NonNull
    method asset (line 85) | @NonNull
    method uri (line 100) | @NonNull
    method uri (line 120) | @NonNull
    method bitmap (line 134) | @NonNull
    method cachedBitmap (line 150) | @NonNull
    method tilingEnabled (line 164) | @NonNull
    method tilingDisabled (line 174) | @NonNull
    method tiling (line 185) | @NonNull
    method region (line 197) | @NonNull
    method dimensions (line 212) | @NonNull
    method setInvariants (line 222) | private void setInvariants() {
    method getUri (line 230) | protected final Uri getUri() {
    method getBitmap (line 234) | protected final Bitmap getBitmap() {
    method getResource (line 238) | protected final Integer getResource() {
    method getTile (line 242) | protected final boolean getTile() {
    method getSWidth (line 246) | protected final int getSWidth() {
    method getSHeight (line 250) | protected final int getSHeight() {
    method getSRegion (line 254) | protected final Rect getSRegion() {
    method isCached (line 258) | protected final boolean isCached() {

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/ImageViewState.java
  class ImageViewState (line 11) | @SuppressWarnings("WeakerAccess")
    method ImageViewState (line 22) | public ImageViewState(float scale, @NonNull PointF center, int orienta...
    method getScale (line 29) | public float getScale() {
    method getCenter (line 33) | @NonNull public PointF getCenter() {
    method getOrientation (line 37) | public int getOrientation() {

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java
  class SubsamplingScaleImageView (line 71) | @SuppressWarnings("unused")
    method SubsamplingScaleImageView (line 286) | public SubsamplingScaleImageView(Context context, AttributeSet attr) {
    method SubsamplingScaleImageView (line 337) | public SubsamplingScaleImageView(Context context) {
    method getPreferredBitmapConfig (line 346) | public static Bitmap.Config getPreferredBitmapConfig() {
    method setPreferredBitmapConfig (line 357) | public static void setPreferredBitmapConfig(Bitmap.Config preferredBit...
    method setOrientation (line 366) | public final void setOrientation(int orientation) {
    method setImage (line 380) | public final void setImage(@NonNull ImageSource imageSource) {
    method setImage (line 391) | public final void setImage(@NonNull ImageSource imageSource, ImageView...
    method setImage (line 405) | public final void setImage(@NonNull ImageSource imageSource, ImageSour...
    method setImage (line 422) | public final void setImage(@NonNull ImageSource imageSource, ImageSour...
    method reset (line 479) | private void reset(boolean newImage) {
    method setGestureDetector (line 548) | private void setGestureDetector(final Context context) {
    method onSizeChanged (line 612) | @Override
    method onMeasure (line 627) | @Override
    method onTouchEvent (line 655) | @Override
    method onTouchEventInternal (line 700) | @SuppressWarnings("deprecation")
    method requestDisallowInterceptTouchEvent (line 929) | private void requestDisallowInterceptTouchEvent(boolean disallowInterc...
    method doubleTapZoom (line 940) | private void doubleTapZoom(PointF sCenter, PointF vFocus) {
    method onDraw (line 969) | @Override
    method setMatrixArray (line 1155) | private void setMatrixArray(float[] array, float f0, float f1, float f...
    method isBaseLayerReady (line 1169) | private boolean isBaseLayerReady() {
    method checkReady (line 1193) | private boolean checkReady() {
    method checkImageLoaded (line 1210) | private boolean checkImageLoaded() {
    method createPaints (line 1226) | private void createPaints() {
    method initialiseBaseLayer (line 1249) | private synchronized void initialiseBaseLayer(@NonNull Point maxTileDi...
    method refreshRequiredTiles (line 1291) | private void refreshRequiredTiles(boolean load) {
    method tileVisible (line 1332) | private boolean tileVisible(Tile tile) {
    method preDraw (line 1343) | private void preDraw() {
    method calculateInSampleSize (line 1369) | private int calculateInSampleSize(float scale) {
    method fitToBounds (line 1413) | private void fitToBounds(boolean center, ScaleAndTranslate sat) {
    method fitToBounds (line 1462) | private void fitToBounds(boolean center) {
    method initialiseTileMap (line 1484) | private void initialiseTileMap(Point maxTileDimensions) {
    class TilesInitTask (line 1534) | private static class TilesInitTask extends AsyncTask<Void, Void, int[]> {
      method TilesInitTask (line 1542) | TilesInitTask(SubsamplingScaleImageView view, Context context, Decod...
      method doInBackground (line 1549) | @Override
      method onPostExecute (line 1580) | @Override
    method onTilesInited (line 1596) | private synchronized void onTilesInited(ImageRegionDecoder decoder, in...
    class TileLoadTask (line 1628) | private static class TileLoadTask extends AsyncTask<Void, Void, Bitmap> {
      method TileLoadTask (line 1634) | TileLoadTask(SubsamplingScaleImageView view, ImageRegionDecoder deco...
      method doInBackground (line 1641) | @Override
      method onPostExecute (line 1677) | @Override
    method onTileLoaded (line 1696) | private synchronized void onTileLoaded() {
    class BitmapLoadTask (line 1717) | private static class BitmapLoadTask extends AsyncTask<Void, Void, Inte...
      method BitmapLoadTask (line 1726) | BitmapLoadTask(SubsamplingScaleImageView view, Context context, Deco...
      method doInBackground (line 1734) | @Override
      method onPostExecute (line 1756) | @Override
    method onPreviewLoaded (line 1780) | private synchronized void onPreviewLoaded(Bitmap previewBitmap) {
    method onImageLoaded (line 1801) | private synchronized void onImageLoaded(Bitmap bitmap, int sOrientatio...
    method getExifOrientation (line 1833) | @AnyThread
    method execute (line 1880) | private void execute(AsyncTask<Void, Void, ?> asyncTask) {
    class Tile (line 1884) | private static class Tile {
    class Anim (line 1898) | private static class Anim {
    class ScaleAndTranslate (line 1916) | private static class ScaleAndTranslate {
      method ScaleAndTranslate (line 1917) | private ScaleAndTranslate(float scale, PointF vTranslate) {
    method restoreState (line 1928) | private void restoreState(ImageViewState state) {
    method setMaxTileSize (line 1942) | public void setMaxTileSize(int maxPixels) {
    method setMaxTileSize (line 1953) | public void setMaxTileSize(int maxPixelsX, int maxPixelsY) {
    method getMaxBitmapDimensions (line 1961) | @NonNull
    method sWidth (line 1969) | @SuppressWarnings("SuspiciousNameCombination")
    method sHeight (line 1982) | @SuppressWarnings("SuspiciousNameCombination")
    method fileSRect (line 1996) | @SuppressWarnings("SuspiciousNameCombination")
    method getRequiredRotation (line 2013) | @AnyThread
    method distance (line 2025) | private float distance(float x0, float x1, float y0, float y1) {
    method recycle (line 2036) | public void recycle() {
    method viewToSourceX (line 2047) | private float viewToSourceX(float vx) {
    method viewToSourceY (line 2055) | private float viewToSourceY(float vy) {
    method viewToFileRect (line 2072) | public void viewToFileRect(Rect vRect, Rect fRect) {
    method visibleFileRect (line 2099) | public void visibleFileRect(Rect fRect) {
    method viewToSourceCoord (line 2112) | @Nullable
    method viewToSourceCoord (line 2123) | @Nullable
    method viewToSourceCoord (line 2134) | @Nullable
    method viewToSourceCoord (line 2146) | @Nullable
    method sourceToViewX (line 2158) | private float sourceToViewX(float sx) {
    method sourceToViewY (line 2166) | private float sourceToViewY(float sy) {
    method sourceToViewCoord (line 2176) | @Nullable
    method sourceToViewCoord (line 2187) | @Nullable
    method sourceToViewCoord (line 2198) | @SuppressWarnings("UnusedReturnValue")
    method sourceToViewCoord (line 2211) | @Nullable
    method sourceToViewRect (line 2223) | private void sourceToViewRect(@NonNull Rect sRect, @NonNull Rect vTarg...
    method vTranslateForSCenter (line 2237) | @NonNull
    method limitedSCenter (line 2254) | @NonNull
    method minScale (line 2268) | private float minScale() {
    method limitedScale (line 2283) | private float limitedScale(float targetScale) {
    method ease (line 2298) | private float ease(int type, long time, float from, float change, long...
    method easeOutQuad (line 2317) | private float easeOutQuad(long time, float from, float change, long du...
    method easeInOutQuad (line 2330) | private float easeInOutQuad(long time, float from, float change, long ...
    method debug (line 2343) | @AnyThread
    method px (line 2353) | private int px(int px) {
    method setRegionDecoderClass (line 2364) | public final void setRegionDecoderClass(@NonNull Class<? extends Image...
    method setRegionDecoderFactory (line 2378) | public final void setRegionDecoderFactory(@NonNull DecoderFactory<? ex...
    method setBitmapDecoderClass (line 2392) | public final void setBitmapDecoderClass(@NonNull Class<? extends Image...
    method setBitmapDecoderFactory (line 2405) | public final void setBitmapDecoderFactory(@NonNull DecoderFactory<? ex...
    method getPanRemaining (line 2419) | public final void getPanRemaining(RectF vTarget) {
    method setPanLimit (line 2449) | public final void setPanLimit(int panLimit) {
    method setMinimumScaleType (line 2464) | public final void setMinimumScaleType(int scaleType) {
    method setMaxScale (line 2481) | public final void setMaxScale(float maxScale) {
    method setMinScale (line 2490) | public final void setMinScale(float minScale) {
    method setMinimumDpi (line 2500) | public final void setMinimumDpi(int dpi) {
    method setMaximumDpi (line 2511) | public final void setMaximumDpi(int dpi) {
    method getMaxScale (line 2521) | public float getMaxScale() {
    method getMinScale (line 2529) | public final float getMinScale() {
    method setMinimumTileDpi (line 2541) | public void setMinimumTileDpi(int minimumTileDpi) {
    method getCenter (line 2555) | @Nullable
    method getScale (line 2566) | public final float getScale() {
    method setScaleAndCenter (line 2576) | public final void setScaleAndCenter(float scale, @Nullable PointF sCen...
    method resetScaleAndCenter (line 2588) | public final void resetScaleAndCenter() {
    method isReady (line 2606) | public final boolean isReady() {
    method onReady (line 2615) | @SuppressWarnings("EmptyMethod")
    method isImageLoaded (line 2625) | public final boolean isImageLoaded() {
    method onImageLoaded (line 2632) | @SuppressWarnings("EmptyMethod")
    method getSWidth (line 2642) | public final int getSWidth() {
    method getSHeight (line 2651) | public final int getSHeight() {
    method getOrientation (line 2660) | public final int getOrientation() {
    method getAppliedOrientation (line 2669) | public final int getAppliedOrientation() {
    method getState (line 2678) | @Nullable
    method isZoomEnabled (line 2691) | public final boolean isZoomEnabled() {
    method setZoomEnabled (line 2699) | public final void setZoomEnabled(boolean zoomEnabled) {
    method isQuickScaleEnabled (line 2707) | public final boolean isQuickScaleEnabled() {
    method setQuickScaleEnabled (line 2715) | public final void setQuickScaleEnabled(boolean quickScaleEnabled) {
    method isPanEnabled (line 2723) | public final boolean isPanEnabled() {
    method setPanEnabled (line 2732) | public final void setPanEnabled(boolean panEnabled) {
    method setTileBackgroundColor (line 2748) | public final void setTileBackgroundColor(int tileBgColor) {
    method setDoubleTapZoomScale (line 2765) | public final void setDoubleTapZoomScale(float doubleTapZoomScale) {
    method setDoubleTapZoomDpi (line 2775) | public final void setDoubleTapZoomDpi(int dpi) {
    method setDoubleTapZoomStyle (line 2785) | public final void setDoubleTapZoomStyle(int doubleTapZoomStyle) {
    method setDoubleTapZoomDuration (line 2796) | public final void setDoubleTapZoomDuration(int durationMs) {
    method setExecutor (line 2817) | public void setExecutor(@NonNull Executor executor) {
    method setEagerLoadingEnabled (line 2834) | public void setEagerLoadingEnabled(boolean eagerLoadingEnabled) {
    method setDebug (line 2842) | public final void setDebug(boolean debug) {
    method hasImage (line 2850) | public boolean hasImage() {
    method setOnLongClickListener (line 2857) | @Override
    method setOnImageEventListener (line 2867) | public void setOnImageEventListener(OnImageEventListener onImageEventL...
    method setOnStateChangedListener (line 2876) | public void setOnStateChangedListener(OnStateChangedListener onStateCh...
    method sendStateChanged (line 2880) | private void sendStateChanged(float oldScale, PointF oldVTranslate, in...
    method animateCenter (line 2897) | @Nullable
    method animateScale (line 2911) | @Nullable
    method animateScaleAndCenter (line 2926) | @Nullable
    class AnimationBuilder (line 2938) | public final class AnimationBuilder {
      method AnimationBuilder (line 2950) | private AnimationBuilder(PointF sCenter) {
      method AnimationBuilder (line 2956) | private AnimationBuilder(float scale) {
      method AnimationBuilder (line 2962) | private AnimationBuilder(float scale, PointF sCenter) {
      method AnimationBuilder (line 2968) | private AnimationBuilder(float scale, PointF sCenter, PointF vFocus) {
      method withDuration (line 2979) | @NonNull
      method withInterruptible (line 2990) | @NonNull
      method withEasing (line 3001) | @NonNull
      method withOnAnimationEventListener (line 3015) | @NonNull
      method withPanLimited (line 3027) | @NonNull
      method withOrigin (line 3036) | @NonNull
      method start (line 3045) | public void start() {
    type OnAnimationEventListener (line 3102) | @SuppressWarnings("EmptyMethod")
      method onComplete (line 3108) | void onComplete();
      method onInterruptedByUser (line 3113) | void onInterruptedByUser();
      method onInterruptedByNewAnim (line 3118) | void onInterruptedByNewAnim();
    class DefaultOnAnimationEventListener (line 3125) | public static class DefaultOnAnimationEventListener implements OnAnima...
      method onComplete (line 3127) | @Override public void onComplete() { }
      method onInterruptedByUser (line 3128) | @Override public void onInterruptedByUser() { }
      method onInterruptedByNewAnim (line 3129) | @Override public void onInterruptedByNewAnim() { }
    type OnImageEventListener (line 3136) | @SuppressWarnings("EmptyMethod")
      method onReady (line 3145) | void onReady();
      method onImageLoaded (line 3154) | void onImageLoaded();
      method onPreviewLoadError (line 3162) | void onPreviewLoadError(Exception e);
      method onImageLoadError (line 3171) | void onImageLoadError(Exception e);
      method onTileLoadError (line 3180) | void onTileLoadError(Exception e);
      method onPreviewReleased (line 3186) | void onPreviewReleased();
    class DefaultOnImageEventListener (line 3192) | public static class DefaultOnImageEventListener implements OnImageEven...
      method onReady (line 3194) | @Override public void onReady() { }
      method onImageLoaded (line 3195) | @Override public void onImageLoaded() { }
      method onPreviewLoadError (line 3196) | @Override public void onPreviewLoadError(Exception e) { }
      method onImageLoadError (line 3197) | @Override public void onImageLoadError(Exception e) { }
      method onTileLoadError (line 3198) | @Override public void onTileLoadError(Exception e) { }
      method onPreviewReleased (line 3199) | @Override public void onPreviewReleased() { }
    type OnStateChangedListener (line 3209) | @SuppressWarnings("EmptyMethod")
      method onScaleChanged (line 3218) | void onScaleChanged(float newScale, int origin);
      method onCenterChanged (line 3225) | void onCenterChanged(PointF newCenter, int origin);
    class DefaultOnStateChangedListener (line 3232) | public static class DefaultOnStateChangedListener implements OnStateCh...
      method onCenterChanged (line 3234) | @Override public void onCenterChanged(PointF newCenter, int origin) { }
      method onScaleChanged (line 3235) | @Override public void onScaleChanged(float newScale, int origin) { }

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/CompatDecoderFactory.java
  class CompatDecoderFactory (line 13) | @SuppressWarnings("WeakerAccess")
    method CompatDecoderFactory (line 23) | public CompatDecoderFactory(@NonNull Class<? extends T> clazz) {
    method CompatDecoderFactory (line 32) | public CompatDecoderFactory(@NonNull Class<? extends T> clazz, Bitmap....
    method make (line 37) | @Override

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.java
  type DecoderFactory (line 11) | public interface DecoderFactory<T> {
    method make (line 21) | @NonNull T make() throws IllegalAccessException, InstantiationExceptio...

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/ImageDecoder.java
  type ImageDecoder (line 12) | public interface ImageDecoder {
    method decode (line 28) | @NonNull Bitmap decode(Context context, @NonNull Uri uri) throws Excep...

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/ImageRegionDecoder.java
  type ImageRegionDecoder (line 14) | public interface ImageRegionDecoder {
    method init (line 30) | @NonNull Point init(Context context, @NonNull Uri uri) throws Exception;
    method decodeRegion (line 48) | @NonNull Bitmap decodeRegion(@NonNull Rect sRect, int sampleSize);
    method isReady (line 54) | boolean isReady();
    method recycle (line 59) | void recycle();

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java
  class SkiaImageDecoder (line 26) | public class SkiaImageDecoder implements ImageDecoder {
    method SkiaImageDecoder (line 34) | @Keep
    method SkiaImageDecoder (line 40) | @SuppressWarnings({"WeakerAccess", "SameParameterValue"})
    method decode (line 52) | @Override

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaImageRegionDecoder.java
  class SkiaImageRegionDecoder (line 35) | public class SkiaImageRegionDecoder implements ImageRegionDecoder {
    method SkiaImageRegionDecoder (line 46) | @Keep
    method SkiaImageRegionDecoder (line 52) | @SuppressWarnings({"WeakerAccess", "SameParameterValue"})
    method init (line 64) | @Override
    method decodeRegion (line 115) | @Override
    method isReady (line 137) | @Override
    method recycle (line 142) | @Override
    method getDecodeLock (line 158) | private Lock getDecodeLock() {

FILE: library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaPooledImageRegionDecoder.java
  class SkiaPooledImageRegionDecoder (line 58) | public class SkiaPooledImageRegionDecoder implements ImageRegionDecoder {
    method SkiaPooledImageRegionDecoder (line 80) | @Keep
    method SkiaPooledImageRegionDecoder (line 86) | @SuppressWarnings({"WeakerAccess", "SameParameterValue"})
    method setDebug (line 102) | @Keep
    method init (line 113) | @Override
    method lazyInit (line 126) | private void lazyInit() {
    method initialiseDecoder (line 158) | private void initialiseDecoder() throws Exception {
    method decodeRegion (line 250) | @Override
    method isReady (line 289) | @Override
    method recycle (line 298) | @Override
    method allowAdditionalDecoder (line 321) | @SuppressWarnings("WeakerAccess")
    class DecoderPool (line 344) | private static class DecoderPool {
      method isEmpty (line 351) | private synchronized boolean isEmpty() {
      method size (line 358) | private synchronized int size() {
      method acquire (line 365) | private BitmapRegionDecoder acquire() {
      method release (line 373) | private void release(BitmapRegionDecoder decoder) {
      method add (line 382) | private synchronized void add(BitmapRegionDecoder decoder) {
      method recycle (line 394) | private synchronized void recycle() {
      method getNextAvailable (line 402) | private synchronized BitmapRegionDecoder getNextAvailable() {
      method markAsUnused (line 412) | private synchronized boolean markAsUnused(BitmapRegionDecoder decode...
    method getNumberOfCores (line 428) | private int getNumberOfCores() {
    method getNumCoresOldPhones (line 441) | private int getNumCoresOldPhones() {
    method isLowMemory (line 457) | private boolean isLowMemory() {
    method debug (line 468) | private void debug(String message) {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractFragmentsActivity.java
  class AbstractFragmentsActivity (line 11) | public abstract class AbstractFragmentsActivity extends FragmentActivity {
    method onPageChanged (line 21) | protected abstract void onPageChanged(int page);
    method AbstractFragmentsActivity (line 23) | protected AbstractFragmentsActivity(int title, int layout, List<Page> ...
    method onCreate (line 29) | @Override
    method onResume (line 43) | @Override
    method onSaveInstanceState (line 49) | @Override
    method onOptionsItemSelected (line 55) | @Override
    method next (line 61) | public void next() {
    method previous (line 66) | public void previous() {
    method updateNotes (line 71) | private void updateNotes() {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java
  class AbstractPagesActivity (line 13) | public abstract class AbstractPagesActivity extends FragmentActivity {
    method AbstractPagesActivity (line 23) | protected AbstractPagesActivity(int title, int layout, List<Page> note...
    method onCreate (line 29) | @Override
    method onResume (line 49) | @Override
    method onSaveInstanceState (line 55) | @Override
    method onOptionsItemSelected (line 61) | @Override
    method next (line 67) | private void next() {
    method previous (line 72) | private void previous() {
    method updateNotes (line 77) | private void updateNotes() {
    method getPage (line 91) | protected final int getPage() {
    method onPageChanged (line 95) | protected void onPageChanged(int page) {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/MainActivity.java
  class MainActivity (line 20) | public class MainActivity extends Activity implements View.OnClickListen...
    method onCreate (line 22) | @Override
    method onClick (line 41) | @Override
    method startActivity (line 56) | private void startActivity(Class<? extends Activity> activity) {
    method openGitHub (line 61) | private void openGitHub() {
    method onBackPressed (line 67) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/Page.java
  class Page (line 3) | public class Page {
    method Page (line 9) | public Page(int subtitle, int text) {
    method getText (line 14) | public int getText() {
    method getSubtitle (line 18) | public int getSubtitle() {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/animation/AnimationActivity.java
  class AnimationActivity (line 22) | public class AnimationActivity extends AbstractPagesActivity {
    method AnimationActivity (line 26) | public AnimationActivity() {
    method onCreate (line 35) | @Override
    method onPageChanged (line 45) | @Override
    method play (line 54) | private void play() {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/basicfeatures/BasicFeaturesActivity.java
  class BasicFeaturesActivity (line 17) | public class BasicFeaturesActivity extends AbstractPagesActivity {
    method BasicFeaturesActivity (line 19) | public BasicFeaturesActivity() {
    method onCreate (line 29) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/configuration/ConfigurationActivity.java
  class ConfigurationActivity (line 18) | public class ConfigurationActivity extends AbstractPagesActivity {
    method ConfigurationActivity (line 22) | public ConfigurationActivity() {
    method onCreate (line 37) | @Override
    method onPageChanged (line 44) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/eventhandling/EventHandlingActivity.java
  class EventHandlingActivity (line 18) | public class EventHandlingActivity extends AbstractPagesActivity {
    method EventHandlingActivity (line 20) | public EventHandlingActivity() {
    method onCreate (line 28) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/eventhandlingadvanced/AdvancedEventHandlingActivity.java
  class AdvancedEventHandlingActivity (line 21) | public class AdvancedEventHandlingActivity extends AbstractPagesActivity {
    method AdvancedEventHandlingActivity (line 23) | public AdvancedEventHandlingActivity() {
    method onCreate (line 33) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionActivity.java
  class ExtensionActivity (line 23) | public class ExtensionActivity extends AbstractFragmentsActivity {
    method ExtensionActivity (line 31) | public ExtensionActivity() {
    method onPageChanged (line 39) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionCircleFragment.java
  class ExtensionCircleFragment (line 15) | public class ExtensionCircleFragment extends Fragment {
    method onCreateView (line 17) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionFreehandFragment.java
  class ExtensionFreehandFragment (line 15) | public class ExtensionFreehandFragment extends Fragment {
    method onCreateView (line 17) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionPinFragment.java
  class ExtensionPinFragment (line 16) | public class ExtensionPinFragment extends Fragment {
    method onCreateView (line 18) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/CircleView.java
  class CircleView (line 10) | public class CircleView extends SubsamplingScaleImageView {
    method CircleView (line 18) | public CircleView(Context context) {
    method CircleView (line 22) | public CircleView(Context context, AttributeSet attr) {
    method initialise (line 27) | private void initialise() {
    method onDraw (line 32) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/FreehandView.java
  class FreehandView (line 17) | public class FreehandView extends SubsamplingScaleImageView implements O...
    method FreehandView (line 31) | public FreehandView(Context context, AttributeSet attr) {
    method FreehandView (line 36) | public FreehandView(Context context) {
    method initialise (line 40) | private void initialise() {
    method onTouch (line 46) | @Override
    method onTouchEvent (line 51) | @Override
    method onDraw (line 104) | @Override
    method reset (line 136) | public void reset() {

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/PinView.java
  class PinView (line 10) | public class PinView extends SubsamplingScaleImageView {
    method PinView (line 17) | public PinView(Context context) {
    method PinView (line 21) | public PinView(Context context, AttributeSet attr) {
    method setPin (line 26) | public void setPin(PointF sPin) {
    method initialise (line 32) | private void initialise() {
    method onDraw (line 40) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayActivity.java
  class ImageDisplayActivity (line 16) | public class ImageDisplayActivity extends AbstractFragmentsActivity {
    method ImageDisplayActivity (line 24) | public ImageDisplayActivity() {
    method onPageChanged (line 32) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayLargeFragment.java
  class ImageDisplayLargeFragment (line 15) | public class ImageDisplayLargeFragment extends Fragment {
    method onCreateView (line 17) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayRegionFragment.java
  class ImageDisplayRegionFragment (line 22) | public class ImageDisplayRegionFragment extends Fragment {
    method onCreateView (line 24) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayRotateFragment.java
  class ImageDisplayRotateFragment (line 15) | public class ImageDisplayRotateFragment extends Fragment {
    method onCreateView (line 17) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/VerticalViewPager.java
  class VerticalViewPager (line 13) | public class VerticalViewPager extends ViewPager {
    method VerticalViewPager (line 15) | public VerticalViewPager(Context context) {
    method VerticalViewPager (line 20) | public VerticalViewPager(Context context, AttributeSet attrs) {
    method init (line 25) | private void init() {
    class VerticalPageTransformer (line 30) | private class VerticalPageTransformer implements ViewPager.PageTransfo...
      method transformPage (line 32) | @Override
    method swapXY (line 47) | private MotionEvent swapXY(MotionEvent ev) {
    method onInterceptTouchEvent (line 56) | @Override
    method onTouchEvent (line 63) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/ViewPagerActivity.java
  class ViewPagerActivity (line 23) | public class ViewPagerActivity extends AbstractPagesActivity {
    method ViewPagerActivity (line 27) | public ViewPagerActivity() {
    method onCreate (line 34) | @Override
    method onBackPressed (line 43) | @Override
    method onPageChanged (line 53) | @Override
    class ScreenSlidePagerAdapter (line 64) | private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
      method ScreenSlidePagerAdapter (line 65) | ScreenSlidePagerAdapter(FragmentManager fm) {
      method getItem (line 69) | @Override
      method getCount (line 76) | @Override

FILE: sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/ViewPagerFragment.java
  class ViewPagerFragment (line 15) | public class ViewPagerFragment extends Fragment {
    method ViewPagerFragment (line 21) | public ViewPagerFragment() {
    method setAsset (line 24) | public void setAsset(String asset) {
    method onCreateView (line 28) | @Override
    method onSaveInstanceState (line 45) | @Override
Condensed preview — 110 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,132K chars).
[
  {
    "path": ".gitignore",
    "chars": 229,
    "preview": "# Gradle files\n.gradle/\nbuild/\n\n# Local configuration file (sdk path, etc)\nlocal.properties\n\n# Android Studio generated "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 945,
    "preview": "Before raising a new issue, please check the following places for an answer to your question!\n\n* Read through [the wiki]"
  },
  {
    "path": "LICENSE",
    "chars": 10273,
    "preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
  },
  {
    "path": "README.md",
    "chars": 6004,
    "preview": "Subsampling Scale Image View\n===========================\n\nA custom image view for Android, designed for photo galleries "
  },
  {
    "path": "build.gradle",
    "chars": 381,
    "preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\nallprojects {\n    re"
  },
  {
    "path": "docs/issue_template.md",
    "chars": 400,
    "preview": "*Please provide as much of the following information as possible. Please do not raise issues to ask for help developing "
  },
  {
    "path": "docs/javadoc/allclasses-frame.html",
    "chars": 4019,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/allclasses-noframe.html",
    "chars": 3699,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/ImageSource.html",
    "chars": 32782,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/ImageViewState.html",
    "chars": 13880,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.AnimationBuilder.html",
    "chars": 17714,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnAnimationEventListener.html",
    "chars": 17124,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnImageEventListener.html",
    "chars": 24691,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.DefaultOnStateChangedListener.html",
    "chars": 17345,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnAnimationEventListener.html",
    "chars": 10546,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnImageEventListener.html",
    "chars": 15341,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.OnStateChangedListener.html",
    "chars": 11140,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.html",
    "chars": 286288,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/CompatDecoderFactory.html",
    "chars": 19115,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.html",
    "chars": 10928,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/ImageDecoder.html",
    "chars": 10500,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/ImageRegionDecoder.html",
    "chars": 15425,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.html",
    "chars": 16443,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/SkiaImageRegionDecoder.html",
    "chars": 24369,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/SkiaPooledImageRegionDecoder.html",
    "chars": 26498,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/package-frame.html",
    "chars": 1946,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/package-summary.html",
    "chars": 9419,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/decoder/package-tree.html",
    "chars": 7534,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/package-frame.html",
    "chars": 2521,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/package-summary.html",
    "chars": 9080,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/com/davemorrissey/labs/subscaleview/package-tree.html",
    "chars": 9357,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/constant-values.html",
    "chars": 12953,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/deprecated-list.html",
    "chars": 3453,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/help-doc.html",
    "chars": 8171,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/index-all.html",
    "chars": 102999,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/index.html",
    "chars": 2804,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\">\n<!-- NewPage -->\n<"
  },
  {
    "path": "docs/javadoc/overview-frame.html",
    "chars": 908,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/overview-summary.html",
    "chars": 4172,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/overview-tree.html",
    "chars": 11553,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/package-list",
    "chars": 80,
    "preview": "com.davemorrissey.labs.subscaleview\ncom.davemorrissey.labs.subscaleview.decoder\n"
  },
  {
    "path": "docs/javadoc/script.js",
    "chars": 827,
    "preview": "function show(type)\n{\n    count = 0;\n    for (var key in methods) {\n        var row = document.getElementById(key);\n    "
  },
  {
    "path": "docs/javadoc/serialized-form.html",
    "chars": 4521,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "docs/javadoc/stylesheet.css",
    "chars": 12842,
    "preview": "/* Javadoc style sheet */\n/*\nOverall document style\n*/\n\n@import url('resources/fonts/dejavu.css');\n\nbody {\n    backgroun"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 230,
    "preview": "#Tue Dec 29 20:26:01 GMT 2020\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_"
  },
  {
    "path": "gradle.properties",
    "chars": 783,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "gradlew",
    "chars": 5296,
    "preview": "#!/usr/bin/env sh\n\n##############################################################################\n##\n##  Gradle start up"
  },
  {
    "path": "gradlew.bat",
    "chars": 2260,
    "preview": "@if \"%DEBUG%\" == \"\" @echo off\r\n@rem ##########################################################################\r\n@rem\r\n@r"
  },
  {
    "path": "library/build.gradle",
    "chars": 1128,
    "preview": "apply plugin: 'com.android.library'\n\ngroup = 'com.davemorrissey.labs'\narchivesBaseName = 'subsampling-scale-image-view-a"
  },
  {
    "path": "library/proguard-rules.txt",
    "chars": 58,
    "preview": "-keep class com.davemorrissey.labs.subscaleview.** { *; }\n"
  },
  {
    "path": "library/src/main/AndroidManifest.xml",
    "chars": 246,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n          pa"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/ImageSource.java",
    "chars": 8172,
    "preview": "package com.davemorrissey.labs.subscaleview;\n\nimport android.graphics.Bitmap;\nimport android.graphics.Rect;\nimport andro"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/ImageViewState.java",
    "chars": 927,
    "preview": "package com.davemorrissey.labs.subscaleview;\n\nimport android.graphics.PointF;\nimport androidx.annotation.NonNull;\n\nimpor"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java",
    "chars": 142744,
    "preview": "package com.davemorrissey.labs.subscaleview;\n\nimport android.content.ContentResolver;\nimport android.content.Context;\nim"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/CompatDecoderFactory.java",
    "chars": 1757,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.graphics.Bitmap;\nimport androidx.annotation.NonNull"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.java",
    "chars": 919,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport androidx.annotation.NonNull;\n\nimport java.lang.reflect.Invo"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/ImageDecoder.java",
    "chars": 950,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.content.Context;\nimport android.graphics.Bitmap;\nim"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/ImageRegionDecoder.java",
    "chars": 2491,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.content.Context;\nimport android.graphics.Bitmap;\nim"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java",
    "chars": 4280,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.content.ContentResolver;\nimport android.content.Con"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaImageRegionDecoder.java",
    "chars": 6706,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.content.ContentResolver;\nimport android.content.Con"
  },
  {
    "path": "library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/SkiaPooledImageRegionDecoder.java",
    "chars": 19103,
    "preview": "package com.davemorrissey.labs.subscaleview.decoder;\n\nimport android.app.ActivityManager;\nimport android.content.Content"
  },
  {
    "path": "library/src/main/res/values/attrs.xml",
    "chars": 462,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <declare-styleable name=\"SubsamplingScaleImageView\">\n        <at"
  },
  {
    "path": "release.gradle",
    "chars": 3233,
    "preview": "apply plugin: 'maven'\napply plugin: 'signing'\n\ndef isReleaseBuild() {\n    return version.contains(\"SNAPSHOT\") == false\n}"
  },
  {
    "path": "sample/build.gradle",
    "chars": 429,
    "preview": "apply plugin: 'com.android.application'\n\nandroid {\n    compileSdkVersion 29\n    defaultConfig {\n        minSdkVersion 17"
  },
  {
    "path": "sample/src/main/AndroidManifest.xml",
    "chars": 1654,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n          xm"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractFragmentsActivity.java",
    "chars": 2071,
    "preview": "package com.davemorrissey.labs.subscaleview.test;\n\nimport android.app.ActionBar;\nimport android.os.Bundle;\nimport androi"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java",
    "chars": 2781,
    "preview": "package com.davemorrissey.labs.subscaleview.test;\n\nimport android.app.ActionBar;\nimport android.os.Bundle;\nimport androi"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/MainActivity.java",
    "chars": 3198,
    "preview": "package com.davemorrissey.labs.subscaleview.test;\n\nimport android.app.ActionBar;\nimport android.app.Activity;\nimport and"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/Page.java",
    "chars": 362,
    "preview": "package com.davemorrissey.labs.subscaleview.test;\n\npublic class Page {\n\n    private final int text;\n\n    private final i"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/animation/AnimationActivity.java",
    "chars": 2711,
    "preview": "package com.davemorrissey.labs.subscaleview.test.animation;\n\nimport android.graphics.PointF;\nimport android.os.Bundle;\ni"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/basicfeatures/BasicFeaturesActivity.java",
    "chars": 1340,
    "preview": "package com.davemorrissey.labs.subscaleview.test.basicfeatures;\n\nimport android.os.Bundle;\nimport androidx.annotation.Nu"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/configuration/ConfigurationActivity.java",
    "chars": 3477,
    "preview": "package com.davemorrissey.labs.subscaleview.test.configuration;\n\nimport android.graphics.PointF;\nimport android.os.Bundl"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/eventhandling/EventHandlingActivity.java",
    "chars": 1675,
    "preview": "package com.davemorrissey.labs.subscaleview.test.eventhandling;\n\nimport android.os.Bundle;\nimport android.view.View;\nimp"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/eventhandlingadvanced/AdvancedEventHandlingActivity.java",
    "chars": 3617,
    "preview": "package com.davemorrissey.labs.subscaleview.test.eventhandlingadvanced;\n\nimport android.graphics.PointF;\nimport android."
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionActivity.java",
    "chars": 2126,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension;\n\nimport androidx.fragment.app.Fragment;\nimport android.util."
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionCircleFragment.java",
    "chars": 1446,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension;\n\nimport android.os.Bundle;\nimport androidx.annotation.NonNul"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionFreehandFragment.java",
    "chars": 1442,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension;\n\nimport android.os.Bundle;\nimport androidx.annotation.NonNul"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/ExtensionPinFragment.java",
    "chars": 1318,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension;\n\nimport android.graphics.PointF;\nimport android.os.Bundle;\ni"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/CircleView.java",
    "chars": 1706,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension.views;\n\nimport android.content.Context;\nimport android.graphi"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/FreehandView.java",
    "chars": 4911,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension.views;\n\nimport android.content.Context;\nimport android.graphi"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/extension/views/PinView.java",
    "chars": 1691,
    "preview": "package com.davemorrissey.labs.subscaleview.test.extension.views;\n\nimport android.content.Context;\nimport android.graphi"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayActivity.java",
    "chars": 1502,
    "preview": "package com.davemorrissey.labs.subscaleview.test.imagedisplay;\n\nimport androidx.fragment.app.Fragment;\nimport android.ut"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayLargeFragment.java",
    "chars": 1263,
    "preview": "package com.davemorrissey.labs.subscaleview.test.imagedisplay;\n\nimport android.os.Bundle;\nimport androidx.annotation.Non"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayRegionFragment.java",
    "chars": 2308,
    "preview": "package com.davemorrissey.labs.subscaleview.test.imagedisplay;\n\nimport android.graphics.Bitmap;\nimport android.graphics."
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/imagedisplay/ImageDisplayRotateFragment.java",
    "chars": 1726,
    "preview": "package com.davemorrissey.labs.subscaleview.test.imagedisplay;\n\nimport android.os.Bundle;\nimport androidx.annotation.Non"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/VerticalViewPager.java",
    "chars": 1919,
    "preview": "package com.davemorrissey.labs.subscaleview.test.viewpager;\n\nimport android.content.Context;\nimport androidx.annotation."
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/ViewPagerActivity.java",
    "chars": 3053,
    "preview": "package com.davemorrissey.labs.subscaleview.test.viewpager;\n\nimport android.os.Bundle;\nimport androidx.fragment.app.Frag"
  },
  {
    "path": "sample/src/main/java/com/davemorrissey/labs/subscaleview/test/viewpager/ViewPagerFragment.java",
    "chars": 1652,
    "preview": "package com.davemorrissey.labs.subscaleview.test.viewpager;\n\nimport android.os.Bundle;\nimport androidx.annotation.NonNul"
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/button_standout_inactive.xml",
    "chars": 176,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/button_standout_pressed.xml",
    "chars": 176,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/button_transparent_pressed.xml",
    "chars": 178,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/buttonstate_standout.xml",
    "chars": 555,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\t<item andr"
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/buttonstate_transparent.xml",
    "chars": 587,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "sample/src/main/res/drawable-nodpi/transparent.xml",
    "chars": 178,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "sample/src/main/res/layout/animation_activity.xml",
    "chars": 1031,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/extension_circle_fragment.xml",
    "chars": 837,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/extension_freehand_fragment.xml",
    "chars": 1125,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/extension_pin_fragment.xml",
    "chars": 865,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/fragments_activity.xml",
    "chars": 179,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <FrameLayout androi"
  },
  {
    "path": "sample/src/main/res/layout/imagedisplay_large_fragment.xml",
    "chars": 860,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/imagedisplay_region_fragment.xml",
    "chars": 1119,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/imagedisplay_rotate_fragment.xml",
    "chars": 1088,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/main.xml",
    "chars": 2513,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ScrollView xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@st"
  },
  {
    "path": "sample/src/main/res/layout/pages_activity.xml",
    "chars": 774,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/view_pager.xml",
    "chars": 943,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <RelativeLayout sty"
  },
  {
    "path": "sample/src/main/res/layout/view_pager_page.xml",
    "chars": 233,
    "preview": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" style=\"@style/fill\">\n\n    <com.davemorrissey."
  },
  {
    "path": "sample/src/main/res/values/colors.xml",
    "chars": 163,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"background\">#111111</color>\n    <color name=\"actionB"
  },
  {
    "path": "sample/src/main/res/values/strings.xml",
    "chars": 9310,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"app.name\">SSIV Test App</string>\n\n    <string name="
  },
  {
    "path": "sample/src/main/res/values/style.xml",
    "chars": 3187,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <style name=\"sampleTheme\" parent=\"@android:style/Theme.Holo\">\n  "
  },
  {
    "path": "settings.gradle",
    "chars": 37,
    "preview": "include ':library'\ninclude ':sample'\n"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the davemorrissey/subsampling-scale-image-view GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 110 files (1.0 MB), approximately 276.9k tokens, and a symbol index with 366 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!