├── settings.gradle ├── frescoimageviewer ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── stfalcon │ │ │ └── frescoimageviewer │ │ │ ├── OnDismissListener.java │ │ │ ├── AnimationUtils.java │ │ │ ├── adapter │ │ │ ├── ViewHolder.java │ │ │ └── RecyclingPagerAdapter.java │ │ │ ├── drawee │ │ │ ├── NonInterceptableAttacher.java │ │ │ └── ZoomableDraweeView.java │ │ │ ├── MultiTouchViewPager.java │ │ │ ├── SwipeDirectionDetector.java │ │ │ ├── SwipeToDismissListener.java │ │ │ ├── ImageViewerAdapter.java │ │ │ ├── ImageViewerView.java │ │ │ └── ImageViewer.java │ │ └── res │ │ └── layout │ │ └── image_viewer.xml ├── proguard-rules.pro └── build.gradle ├── images ├── posters │ ├── Max.jpg │ ├── Daniel.jpg │ ├── Driver.jpg │ ├── Frank.jpg │ ├── Jules.jpg │ ├── Korben.jpg │ ├── Marty.jpg │ ├── Toretto.jpg │ └── Vincent.jpg ├── fresco_image_viewer_demo.gif └── fresco_image_viewer_customizing_demo.gif ├── sample ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ └── play_store_icon.png │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-hdpi │ │ │ └── ic_settings_white_24dp.png │ │ ├── drawable-mdpi │ │ │ └── ic_settings_white_24dp.png │ │ ├── drawable-xhdpi │ │ │ └── ic_settings_white_24dp.png │ │ ├── drawable-xxhdpi │ │ │ └── ic_settings_white_24dp.png │ │ ├── drawable-xxxhdpi │ │ │ └── ic_settings_white_24dp.png │ │ ├── values │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── styles.xml │ │ │ └── strings.xml │ │ ├── menu │ │ │ └── styling_options_menu.xml │ │ └── layout │ │ │ ├── activity_demo.xml │ │ │ ├── view_image_overlay.xml │ │ │ ├── fragment_demo_card.xml │ │ │ ├── activity_main.xml │ │ │ └── content_posters_grid.xml │ │ ├── java │ │ └── com │ │ │ └── stfalcon │ │ │ └── frescoimageviewersample │ │ │ ├── common │ │ │ ├── data │ │ │ │ ├── models │ │ │ │ │ └── CustomImage.java │ │ │ │ └── Demo.java │ │ │ └── views │ │ │ │ └── ImageOverlayView.java │ │ │ ├── features │ │ │ ├── demo │ │ │ │ ├── simple │ │ │ │ │ └── SimpleUsageActivity.java │ │ │ │ ├── DemoActivity.java │ │ │ │ ├── formatter │ │ │ │ │ └── CustomObjectsActivity.java │ │ │ │ ├── rotation │ │ │ │ │ └── DialogRotationExampleActivity.java │ │ │ │ └── styled │ │ │ │ │ └── StyledViewActivity.java │ │ │ └── main │ │ │ │ ├── MainActivityPagerAdapter.java │ │ │ │ ├── MainActivity.java │ │ │ │ └── DemoCardFragment.java │ │ │ ├── App.java │ │ │ └── utils │ │ │ ├── StylingOptions.java │ │ │ └── AppUtils.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── gradle └── wrapper │ └── gradle-wrapper.properties ├── .gitignore ├── docs └── CHANGELOG.md ├── gradle.properties ├── gradlew.bat ├── gradlew └── README.md /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':sample', ':frescoimageviewer' 2 | -------------------------------------------------------------------------------- /frescoimageviewer/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/posters/Max.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Max.jpg -------------------------------------------------------------------------------- /images/posters/Daniel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Daniel.jpg -------------------------------------------------------------------------------- /images/posters/Driver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Driver.jpg -------------------------------------------------------------------------------- /images/posters/Frank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Frank.jpg -------------------------------------------------------------------------------- /images/posters/Jules.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Jules.jpg -------------------------------------------------------------------------------- /images/posters/Korben.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Korben.jpg -------------------------------------------------------------------------------- /images/posters/Marty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Marty.jpg -------------------------------------------------------------------------------- /images/posters/Toretto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Toretto.jpg -------------------------------------------------------------------------------- /images/posters/Vincent.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/posters/Vincent.jpg -------------------------------------------------------------------------------- /images/fresco_image_viewer_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/fresco_image_viewer_demo.gif -------------------------------------------------------------------------------- /images/fresco_image_viewer_customizing_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/images/fresco_image_viewer_customizing_demo.gif -------------------------------------------------------------------------------- /sample/src/main/res/drawable/play_store_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable/play_store_icon.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-hdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable-hdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-mdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable-mdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-xhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable-xhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-xxhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable-xxhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-xxxhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appearance/FrescoImageViewer/master/sample/src/main/res/drawable-xxxhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /sample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 48dp 5 | 40dp 6 | 7 | -------------------------------------------------------------------------------- /sample/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #727272 4 | #505050 5 | #FF5722 6 | #ffffff 7 | 8 | 9 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Apr 11 09:58:14 EEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 7 | -------------------------------------------------------------------------------- /sample/src/main/res/menu/styling_options_menu.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/activity_demo.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | *.jar 5 | 6 | # files for the dex VM 7 | *.dex 8 | 9 | # Java class files 10 | *.class 11 | 12 | # generated files 13 | android/bin/ 14 | android/gen/ 15 | 16 | # Local configuration file (sdk path, etc) 17 | local.properties 18 | 19 | # Eclipse project files 20 | .classpath 21 | .project 22 | .properties 23 | .settings/ 24 | libprojects/ 25 | 26 | # Proguard folder generated by Eclipse 27 | android/proguard/ 28 | 29 | # Intellij project files 30 | *.iml 31 | *.ipr 32 | *.iws 33 | .idea/ 34 | build/ 35 | .gradle -------------------------------------------------------------------------------- /sample/src/main/java/com/stfalcon/frescoimageviewersample/common/data/models/CustomImage.java: -------------------------------------------------------------------------------- 1 | package com.stfalcon.frescoimageviewersample.common.data.models; 2 | 3 | /* 4 | * Created by troy379 on 10.03.17. 5 | */ 6 | public class CustomImage { 7 | 8 | private String url; 9 | private String description; 10 | 11 | public CustomImage(String url, String description) { 12 | this.url = url; 13 | this.description = description; 14 | } 15 | 16 | public String getUrl() { 17 | return url; 18 | } 19 | 20 | public String getDescription() { 21 | return description; 22 | } 23 | } -------------------------------------------------------------------------------- /docs/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Version 0.5.0 (2017/03/14) 2 | 3 | * formatter for custom objects collections; 4 | * container padding; 5 | * custom image requests; 6 | * gestures enabling/disabling; 7 | * fixed dismiss listener on back button press; 8 | 9 | ## Version 0.4.1 (2016/12/27) 10 | 11 | * fixed memory leak for large amount of images; 12 | * fixed scale processing logic. 13 | 14 | ## Version 0.3.1 (2016/11/01) 15 | 16 | * hide status bar option; 17 | * dismiss listener. 18 | 19 | ## Version 0.2.0 (2016/09/14) 20 | 21 | * custom hierarchy support, images margin; 22 | * custom overlay view; 23 | * image change listener. 24 | 25 | ## Version 0.1.0 (2016/08/29) 26 | 27 | * Release. -------------------------------------------------------------------------------- /sample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/troy379/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /frescoimageviewer/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/troy379/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/view_image_overlay.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 |