// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnMatrixChangedListener {
// 	/**
// 	 * Callback for when the Matrix displaying the Drawable has changed.
// 	 * This could be because the View's bounds have changed, or the user has
// 	 * zoomed.
// 	 * 
// 	 * @param rect - Rectangle displaying the Drawable's new bounds.
// 	 */
// 	void onMatrixChanged(RectF rect);
// }
// 
// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnPhotoTapListener {
// 
// 	/**
// 	 * A callback to receive where the user taps on a photo. You will only
// 	 * receive a callback if the user taps on the actual photo, tapping on
// 	 * 'whitespace' will be ignored.
// 	 * 
// 	 * @param view - View the user tapped.
// 	 * @param x - where the user tapped from the of the Drawable, as
// 	 *            percentage of the Drawable width.
// 	 * @param y - where the user tapped from the top of the Drawable, as
// 	 *            percentage of the Drawable height.
// 	 */
// 	void onPhotoTap(View view, float x, float y);
// }
// 
// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnViewTapListener {
// 
// 	/**
// 	 * A callback to receive where the user taps on a ImageView. You will
// 	 * receive a callback if the user taps anywhere on the view, tapping on
// 	 * 'whitespace' will not be ignored.
// 	 * 
// 	 * @param view - View the user tapped.
// 	 * @param x - where the user tapped from the left of the View.
// 	 * @param y - where the user tapped from the top of the View.
// 	 */
// 	void onViewTap(View view, float x, float y);
// }


import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnMatrixChangedListener;
import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnPhotoTapListener;
import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnViewTapListener;
import android.content.Context;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.AttributeSet;
import android.widget.ImageView;
	public void setMaxScale(float maxScale) {
		mAttacher.setMaxScale(maxScale);
	}

	@Override
	// setImageBitmap calls through to this method
	public void setImageDrawable(Drawable drawable) {
		super.setImageDrawable(drawable);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
	public void setImageResource(int resId) {
		super.setImageResource(resId);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
	public void setImageURI(Uri uri) {
		super.setImageURI(uri);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnMatrixChangedListener {
// 	/**
// 	 * Callback for when the Matrix displaying the Drawable has changed.
// 	 * This could be because the View's bounds have changed, or the user has
// 	 * zoomed.
// 	 * 
// 	 * @param rect - Rectangle displaying the Drawable's new bounds.
// 	 */
// 	void onMatrixChanged(RectF rect);
// }
// 
// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnPhotoTapListener {
// 
// 	/**
// 	 * A callback to receive where the user taps on a photo. You will only
// 	 * receive a callback if the user taps on the actual photo, tapping on
// 	 * 'whitespace' will be ignored.
// 	 * 
// 	 * @param view - View the user tapped.
// 	 * @param x - where the user tapped from the of the Drawable, as
// 	 *            percentage of the Drawable width.
// 	 * @param y - where the user tapped from the top of the Drawable, as
// 	 *            percentage of the Drawable height.
// 	 */
// 	void onPhotoTap(View view, float x, float y);
// }
// 
// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoViewAttacher.java
// public static interface OnViewTapListener {
// 
// 	/**
// 	 * A callback to receive where the user taps on a ImageView. You will
// 	 * receive a callback if the user taps anywhere on the view, tapping on
// 	 * 'whitespace' will not be ignored.
// 	 * 
// 	 * @param view - View the user tapped.
// 	 * @param x - where the user tapped from the left of the View.
// 	 * @param y - where the user tapped from the top of the View.
// 	 */
// 	void onViewTap(View view, float x, float y);
// }


// Path: Chatting/src/cn/jmessage/android/uikit/chatting/photoview/PhotoView.java
import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnMatrixChangedListener;
import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnPhotoTapListener;
import cn.jmessage.android.uikit.chatting.photoview.PhotoViewAttacher.OnViewTapListener;
import android.content.Context;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.AttributeSet;
import android.widget.ImageView;

	public void setMaxScale(float maxScale) {
		mAttacher.setMaxScale(maxScale);
	}

	@Override
	// setImageBitmap calls through to this method
	public void setImageDrawable(Drawable drawable) {
		super.setImageDrawable(drawable);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
	public void setImageResource(int resId) {
		super.setImageResource(resId);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
	public void setImageURI(Uri uri) {
		super.setImageURI(uri);
		if (null != mAttacher) {
			mAttacher.update();
		}
	}

	@Override
	public void setOnMatrixChangeListener(OnMatrixChangedListener listener) {