Xamarin.Android.TouchImageView 1.1.0

dotnet add package Xamarin.Android.TouchImageView --version 1.1.0
                    
NuGet\Install-Package Xamarin.Android.TouchImageView -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xamarin.Android.TouchImageView" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xamarin.Android.TouchImageView" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Xamarin.Android.TouchImageView" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Xamarin.Android.TouchImageView --version 1.1.0
                    
#r "nuget: Xamarin.Android.TouchImageView, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Xamarin.Android.TouchImageView@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Xamarin.Android.TouchImageView&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Xamarin.Android.TouchImageView&version=1.1.0
                    
Install as a Cake Tool

Xamarin.Android.TouchImageView

THIS IS AN EXACT TRANSLATION OF https://github.com/MikeOrtiz/TouchImageView PROJECT.

Examples

Please view the sample app which includes examples of the following functionality:

Single TouchImageView

Basic use of a single TouchImageView. Includes usage of OnTouchImageViewListener, getScrollPosition(), getZoomedRect(), isZoomed(), and getCurrentZoom().

ViewPager Example

TouchImageViews placed in a ViewPager like the Gallery app.

Mirroring Example

Mirror two TouchImageViews using onTouchImageViewListener and setZoom().

Switch Image Example

Click on TouchImageView to cycle through images. Note that the zoom state is maintained though the images are switched.

Switch ScaleType Example

Click on TouchImageView to cycle through supported ScaleTypes.

Resize Example

Click on the arrow buttons to change the shape and size of the TouchImageView. See how the view looks when it shrinks with various "resize" settings. Read ChangeSizeExampleActivity.java's comment for advice on how to set up a TouchImageView that's going to be resized.

Limitations

TouchImageView does not yet support pinch image rotation. Also, FIT_START and FIT_END scaleTypes are not yet supported.

API

Get the current zoom. This is the zoom relative to the initial scale, not the original resource.

float getCurrentZoom();

Get the max zoom multiplier.

float getMaxZoom();

Get the min zoom multiplier.

float getMinZoom();

Return the point at the center of the zoomable image. The PointF coordinates range in value between 0 and 1 and the focus point is denoted as a fraction from the left and top of the view. For example, the top left corner of the image would be (0, 0). And the bottom right corner would be (1, 1).

PointF getScrollPosition();

Return a RectF representing the zoomed image.

RectF getZoomedRect();

Returns false if image is in initial, unzoomed state. True, otherwise.

boolean isZoomed();

Reset zoom and translation to initial state.

void resetZoom();

Set the max zoom multiplier. Default value is 3.

void setMaxZoom(float max);

Set the min zoom multiplier. Default value is 1. Set to TouchImageView.AUTOMATIC_MIN_ZOOM to make it possible to see the whole image.

void setMinZoom(float min);

Set the max zoom multiplier to stay at a fixed multiple of the min zoom multiplier.

void setMaxZoomRatio(float max);

Set the focus point of the zoomed image. The focus points are denoted as a fraction from the left and top of the view. The focus points can range in value between 0 and 1.

void setScrollPosition(float focusX, float focusY);

Set zoom to the specified scale. Image will be centered by default.

void setZoom(float scale);

Set zoom to the specified scale. Image will be centered around the point (focusX, focusY). These floats range from 0 to 1 and denote the focus point as a fraction from the left and top of the view. For example, the top left corner of the image would be (0, 0). And the bottom right corner would be (1, 1).

void setZoom(float scale, float focusX, float focusY);

Set zoom to the specified scale. Image will be centered around the point (focusX, focusY). These floats range from 0 to 1 and denote the focus point as a fraction from the left and top of the view. For example, the top left corner of the image would be (0, 0). And the bottom right corner would be (1, 1).

void setZoom(float scale, float focusX, float focusY, ScaleType scaleType);

Set zoom parameters equal to another TouchImageView. Including scale, position, and ScaleType.

void setZoom(TouchImageView img);

Set which part of the image should remain fixed if the TouchImageView is resized.

setViewSizeChangeFixedPixel(FixedPixel fixedPixel)

Set which part of the image should remain fixed if the screen is rotated.

setOrientationChangeFixedPixel(FixedPixel fixedPixel)

License

TouchImageView is available under the MIT license. See the LICENSE file for more info.

Product Compatible and additional computed target framework versions.
.NET net7.0-android33.0 is compatible.  net8.0-android was computed.  net9.0-android was computed.  net10.0-android was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 582 4/14/2023
1.0.0 894 4/4/2021

- migration to .NET 7