awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
chrisbanes avatar

chrisbanes/PhotoView

0
View on GitHub↗
18,824 stars·3,909 forks·Java·Apache-2.0·8 viewsbaseflow.com↗

PhotoView

PhotoView is a custom Android view implementation designed to display high-resolution images with native support for zoom and pan gestures. It provides a zoomable image view and a matrix controller to manage how images are scaled and translated within a mobile user interface.

The library handles the detection of pinch-to-zoom and tap gestures to enable interactive image navigation. It manages the transformation matrix of the image to ensure smooth magnification and provides viewport constraints to align photo edges with screen boundaries.

The project covers the broader requirements of mobile photo gallery development, including image scrolling, touch event delegation, and real-time tracking of view transformations.

Features

  • 2D Image Transformations - Uses coordinate matrices to manage the scaling and translation of high-resolution images within a view.
  • Interactive Image Viewers - Creating an interface where users can tap and interact with photos to trigger specific application actions or navigation.
  • Android Image Components - Provides a specialized Android view for high-resolution image viewing with zoom and pan support.
  • Transformation Controllers - A component for monitoring and managing the transformation matrix of an image within a mobile interface.
  • Gesture-Based Viewport Navigation - Implements a view that allows users to navigate a high-resolution photo viewport using touch gestures.
  • Zoomable Views - Provides a custom Android view specifically designed for zooming and panning images.
  • Touch Gesture Detectors - Detects and distinguishes between different touch interaction patterns such as taps, drags, and pinches.
  • Touch Gesture Libraries - Integrates multi-touch gesture listeners to enable smooth image magnification and movement.
  • Multi-Touch Gesture Systems - Implements a system for translating multi-finger pinch gestures into precise image zoom levels.
  • Viewport Constraints - Constrains the image panning area to ensure photo edges align correctly with the screen boundaries.
  • Photo Galleries - Provides the core interactive viewing components necessary for building a mobile photo gallery.
  • UI State Transition Logic - Tracks zoom and offset states to trigger automatic snapping of the image back to its original size.
  • Transformation State Tracking - Monitors changes to the image matrix to update the interface based on current zoom and scroll positions.
  • Image Components - Image view with support for multi-touch zooming and gestures.
  • Image Display and Processing - Zoomable image view implementation.
  • UI Components - ImageView with zoom and touch gestures.

Star history

Star history chart for chrisbanes/photoviewStar history chart for chrisbanes/photoview

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to PhotoView

Similar open-source projects, ranked by how many features they share with PhotoView.
  • davemorrissey/subsampling-scale-image-viewdavemorrissey avatar

    davemorrissey/subsampling-scale-image-view

    8,003View on GitHub↗

    This is a custom Android view designed for rendering high-resolution images using subsampling and tiling to prevent memory overflows. It serves as an interactive image component that supports pinch-to-zoom, panning, and double-tap animations. The project is distinguished by its rendering engine, which loads low-resolution previews and high-resolution tiles to enable the efficient navigation of massive image files. It includes a coordinate mapper that converts screen touch points into raw image pixel coordinates and vice versa during scaling and panning. The view provides a broad set of capab

    Javaandroidandroid-libandroid-library
    View on GitHub↗8,003
  • hdodenhof/circleimageviewhdodenhof avatar

    hdodenhof/CircleImageView

    14,500View on GitHub↗

    CircleImageView is a custom Android UI component that renders rectangular images as perfect circles with smooth antialiased edges. It functions as an extension of the native Android image view, overriding the drawing pipeline to provide specialized circular masking. The component specifically supports the creation of user profile avatars by providing customizable borders, internal padding, and background fill colors. These visual styles can be defined through custom XML attributes during the view initialization process.

    Java
    View on GitHub↗14,500
  • vinc3m1/roundedimageviewvinc3m1 avatar

    vinc3m1/RoundedImageView

    6,404View on GitHub↗

    RoundedImageView is an Android library providing custom view implementations for rendering images with rounded corners, circles, and ovals. It uses hardware acceleration to ensure high performance and smooth edge quality when clipping images into these shapes. The library includes a customizable image border view that draws consistent strokes around images, scaling automatically as the view size changes. It also provides a tiled image background view that repeats image patterns across a surface using various tiling modes.

    Java
    View on GitHub↗6,404
  • software-mansion/react-native-gesture-handlersoftware-mansion avatar

    software-mansion/react-native-gesture-handler

    6,755View on GitHub↗

    React Native Gesture Handler is a declarative library that exposes the platform's native touch and gesture system to React Native, enabling smooth, deterministic gesture handling on the UI thread. It manages gesture recognition through a native state machine with defined transitions between states like BEGAN, ACTIVE, END, and CANCELLED, routing touch events through platform-native gesture recognizers on both iOS and Android. The library provides a comprehensive gesture composition framework that allows developers to combine multiple gestures into race, simultaneous, or exclusive sequences, co

    TypeScriptgesturejavascriptreact-native
    View on GitHub↗6,755
See all 30 alternatives to PhotoView→

Frequently asked questions

What does chrisbanes/photoview do?

PhotoView is a custom Android view implementation designed to display high-resolution images with native support for zoom and pan gestures. It provides a zoomable image view and a matrix controller to manage how images are scaled and translated within a mobile user interface.

What are the main features of chrisbanes/photoview?

The main features of chrisbanes/photoview are: 2D Image Transformations, Interactive Image Viewers, Android Image Components, Transformation Controllers, Gesture-Based Viewport Navigation, Zoomable Views, Touch Gesture Detectors, Touch Gesture Libraries.

What are some open-source alternatives to chrisbanes/photoview?

Open-source alternatives to chrisbanes/photoview include: davemorrissey/subsampling-scale-image-view — This is a custom Android view designed for rendering high-resolution images using subsampling and tiling to prevent… hdodenhof/circleimageview — CircleImageView is a custom Android UI component that renders rectangular images as perfect circles with smooth… vinc3m1/roundedimageview — RoundedImageView is an Android library providing custom view implementations for rendering images with rounded… software-mansion/react-native-gesture-handler — React Native Gesture Handler is a declarative library that exposes the platform's native touch and gesture system to… hammerjs/hammer.js — Hammer.js is a library for recognizing touch gestures in web applications. It functions as a unified interface that… kivy/kivy — Kivy is a cross-platform Python GUI framework used to build graphical user interfaces that run on desktop and mobile…