package com.arcao.trackables.ui.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.ImageView;
import com.arcao.trackables.R;
import com.arcao.trackables.ui.widget.util.ViewAspectRatioMeasurer;
public class AspectRatioImageView extends ImageView {
private static final float DEFAULT_ASPECT_RATIO = 1F;
private final ViewAspectRatioMeasurer aspectRatioMeasurer;
public AspectRatioImageView(Context context) {
this(context, null);
}
public AspectRatioImageView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AspectRatioImageView);
float aspectRatio = a.getFloat(R.styleable.AspectRatioImageView_aspectRatio, DEFAULT_ASPECT_RATIO);
a.recycle();
aspectRatioMeasurer = new ViewAspectRatioMeasurer(aspectRatio);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
aspectRatioMeasurer.measure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(aspectRatioMeasurer.getMeasuredWidth(), aspectRatioMeasurer.getMeasuredHeight());
}
}