package edu.mit.mitmobile2; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; public class ResizableImageView extends RemoteImageView { public ResizableImageView(Context context, AttributeSet attrs) { super(context, attrs); } public interface OnSizeChangedListener { public void onSizeChanged(int w, int h, int oldw, int oldh); } private OnSizeChangedListener mListener; public void setOnSizeChangedListener(OnSizeChangedListener listener) { mListener = listener; } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if(mListener != null) { mListener.onSizeChanged(w, h, oldw, oldh); } } public void notifyOnSizeChangedListener() { onSizeChanged(getWidth(), getHeight(), getWidth(), getHeight()); } public static interface Overlay { public void draw(Canvas canvas); } Overlay mOverlay; public void setOverlay(Overlay overlay) { mOverlay = overlay; } @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); if(mOverlay != null && mContentView.getVisibility() == VISIBLE) { mOverlay.draw(canvas); } } }