/*******************************************************************************
|
* Copyright 2011, 2012 Chris Banes.
|
*
|
* 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.
|
*******************************************************************************/
|
package com.doumee.lib_coremodel.view.zoomview;
|
|
import android.graphics.RectF;
|
import android.view.View;
|
import android.widget.ImageView;
|
|
|
public interface IPhotoView {
|
/**
|
* Returns true if the PhotoView is set to allow zooming of Photos.
|
*
|
* @return true if the PhotoView allows zooming.
|
*/
|
boolean canZoom();
|
|
/**
|
* Gets the Display Rectangle of the currently displayed Drawable. The
|
* Rectangle is relative to this View and includes all scaling and
|
* translations.
|
*
|
* @return - RectF of Displayed Drawable
|
*/
|
RectF getDisplayRect();
|
|
/**
|
* @return The current minimum scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
float getMinScale();
|
|
/**
|
* @return The current middle scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
float getMidScale();
|
|
/**
|
* @return The current maximum scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
float getMaxScale();
|
|
/**
|
* Returns the current scale value
|
*
|
* @return float - current scale value
|
*/
|
float getScale();
|
|
/**
|
* Return the current scale type in use by the ImageView.
|
*/
|
ImageView.ScaleType getScaleType();
|
|
/**
|
* Whether to allow the ImageView's parent to intercept the touch event when the photo is scroll to it's horizontal edge.
|
*/
|
void setAllowParentInterceptOnEdge(boolean allow);
|
|
/**
|
* Sets the minimum scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
void setMinScale(float minScale);
|
|
/**
|
* Sets the middle scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
void setMidScale(float midScale);
|
|
/**
|
* Sets the maximum scale level. What this value represents depends on the current {@link ImageView.ScaleType}.
|
*/
|
void setMaxScale(float maxScale);
|
|
/**
|
* Register a callback to be invoked when the Photo displayed by this view is long-pressed.
|
*
|
* @param listener - Listener to be registered.
|
*/
|
void setOnLongClickListener(View.OnLongClickListener listener);
|
|
/**
|
* Register a callback to be invoked when the Matrix has changed for this
|
* View. An example would be the user panning or scaling the Photo.
|
*
|
* @param listener - Listener to be registered.
|
*/
|
void setOnMatrixChangeListener(PhotoViewAttacher.OnMatrixChangedListener listener);
|
|
/**
|
* Register a callback to be invoked when the Photo displayed by this View
|
* is tapped with a single tap.
|
*
|
* @param listener - Listener to be registered.
|
*/
|
void setOnPhotoTapListener(PhotoViewAttacher.OnPhotoTapListener listener);
|
|
/**
|
* Register a callback to be invoked when the View is tapped with a single
|
* tap.
|
*
|
* @param listener - Listener to be registered.
|
*/
|
void setOnViewTapListener(PhotoViewAttacher.OnViewTapListener listener);
|
|
/**
|
* Controls how the image should be resized or moved to match the size of
|
* the ImageView. Any scaling or panning will happen within the confines of
|
* this {@link ImageView.ScaleType}.
|
*
|
* @param scaleType - The desired scaling mode.
|
*/
|
void setScaleType(ImageView.ScaleType scaleType);
|
|
/**
|
* Allows you to enable/disable the zoom functionality on the ImageView.
|
* When disable the ImageView reverts to using the FIT_CENTER matrix.
|
*
|
* @param zoomable - Whether the zoom functionality is enabled.
|
*/
|
void setZoomable(boolean zoomable);
|
|
/**
|
* Zooms to the specified scale, around the focal point given.
|
*
|
* @param scale - Scale to zoom to
|
* @param focalX - X Focus Point
|
* @param focalY - Y Focus Point
|
*/
|
void zoomTo(float scale, float focalX, float focalY);
|
}
|